Files
photo-live/Dockerfile
T

29 lines
1.2 KiB
Docker
Raw Normal View History

FROM node:20-alpine
# tzdata 讓容器能透過 TZ 環境變數使用本地時區(配對名稱以當下時間命名)
RUN apk add --no-cache tzdata
WORKDIR /app
COPY package.json ./
RUN npm install --omit=dev
# 建置時抓取前端函式庫,之後在區網離線環境也能使用
# mind-ar 1.2.2 的編譯器是 ES module,需要一併抓取它的 chunk 檔(檔名含 hash,隨版本固定)
ARG AFRAME_VERSION=1.4.2
ARG MINDAR_VERSION=1.2.2
RUN mkdir -p public/vendor \
&& wget -q -O public/vendor/aframe.min.js "https://aframe.io/releases/${AFRAME_VERSION}/aframe.min.js" \
&& wget -q -O public/vendor/mindar-image-aframe.prod.js "https://cdn.jsdelivr.net/npm/mind-ar@${MINDAR_VERSION}/dist/mindar-image-aframe.prod.js" \
&& wget -q -O public/vendor/mindar-image.prod.js "https://cdn.jsdelivr.net/npm/mind-ar@${MINDAR_VERSION}/dist/mindar-image.prod.js" \
&& wget -q -O public/vendor/controller-495b585f.js "https://cdn.jsdelivr.net/npm/mind-ar@${MINDAR_VERSION}/dist/controller-495b585f.js" \
&& wget -q -O public/vendor/ui-85e81035.js "https://cdn.jsdelivr.net/npm/mind-ar@${MINDAR_VERSION}/dist/ui-85e81035.js"
COPY server.js ./
COPY public ./public
ENV NODE_ENV=production
EXPOSE 3510 3511
CMD ["node", "server.js"]