FROM node:16.14.0
EXPOSE 3000
# node コンテナでは node user がセットされている
# セキュリティ的に root を使うべきでないのと
# wsl 環境などで root だと権限エラーになるので
# node user が権限を持つ /home/node 配下を使う
WORKDIR /home/node/app
COPY --chown=node:node package*.json ./
RUN npm ci
COPY --chown=node:node . ./
# next で build 時に inline 化する
# NEXT_PUBLIC_ 環境変数を列挙とか
ARG NEXT_PUBLIC_APP_URL
# prisma とか使うならこのへんで generate
RUN npx prisma generate
RUN npm run build
USER node
# この方式の場合は node ユーザなので 80 など
# well known port は権限絡みで listen できないため
# 予め web server 80 => web app 3000 受け構成を組む必要ある
CMD ["npm", "start"]
Last active
March 13, 2023 12:22
-
-
Save yano3nora/d960e2654e273e9f65b9b5ed9e694ae0 to your computer and use it in GitHub Desktop.
[dev: Docker node image] #docker #node
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment