29 lines
1.2 KiB
Docker
29 lines
1.2 KiB
Docker
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"]
|