ปกติผมจะใช้งาน Dockerfile แบบ Alpine มาตลอดเพราะมันเบา แต่บ้างงานก็จำเป็นต้องใช้งาน Ubuntu เป็น Dockerfile ด้วย ซึ่งในทุกครั้งที่ทำ ผมจำเป็นต้องเพิ่ม nonroot user ไว้ และเปลี่ยน timezone เป็น Bangkok ซะก่อน

และนี่คือ Dockerfile ที่เป็น ubuntu base สำหรับ Nodejs

FROM node:16
COPY ./ /usr/app
RUN apt-get update && \
  apt-get install -y sudo && \
  ln -fs /usr/share/zoneinfo/Asia/Bangkok /etc/localtime && \
  dpkg-reconfigure -f noninteractive tzdata && \
  useradd --create-home --shell /bin/bash nonroot && \
  echo "nonroot ALL=(ALL) NOPASSWD:ALL" >> /etc/sudoers
EXPOSE 3001
USER nonroot
WORKDIR /usr/app
CMD [ "node", "server.js" ]

นำไปใช้และดัดแปลงกันตามสะดวก...