เพิ่ม nonroot user และ เปลี่ยน timezone ให้กับ Dockerfile ubuntu

ปกติผมจะใช้งาน 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" ]

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