Explorar o código

fix pdf-converter Dockerfile

Futa Arai hai 1 ano
pai
achega
28988865fa
Modificáronse 1 ficheiros con 53 adicións e 55 borrados
  1. 53 55
      apps/pdf-converter/docker/Dockerfile

+ 53 - 55
apps/pdf-converter/docker/Dockerfile

@@ -1,83 +1,81 @@
-########################################################################
-# deps-resolver
-########################################################################
-FROM node:20-slim AS deps-resolver
+# syntax = docker/dockerfile:1
 
-WORKDIR /app
+##
+## base
+##
+FROM node:20-slim AS base
 
-COPY package.json yarn.lock ./
+ENV optDir="/opt"
 
-RUN yarn --frozen-lockfile
+WORKDIR ${optDir}
 
-RUN tar -cf node_modules.tar \
-  node_modules \
-  && rm -rf node_modules
+# install pnpm
+RUN apt-get update && apt-get install -y ca-certificates wget --no-install-recommends \
+  && wget -qO- https://get.pnpm.io/install.sh | ENV="$HOME/.shrc" SHELL="$(which sh)" sh -
+ENV PNPM_HOME="/root/.local/share/pnpm"
+ENV PATH="$PNPM_HOME:$PATH"
 
+# install turbo
+RUN pnpm add turbo --global
 
-########################################################################
-# deps-resolver-prod
-########################################################################
-FROM deps-resolver AS deps-resolver-prod
 
-WORKDIR /app
 
-RUN yarn --production
+##
+## builder
+##
+FROM base AS builder
 
-RUN tar -cf node_modules.tar \
-  node_modules \
-  && rm -rf node_modules
+ENV optDir="/opt"
 
+WORKDIR ${optDir}
 
-########################################################################
-# builder
-########################################################################
-FROM node:20-slim AS builder
+COPY . .
 
-WORKDIR /app
+RUN pnpm install ---frozen-lockfile
 
-COPY package.json yarn.lock tsconfig.json tsconfig.build.json .eslintrc.js ./
-COPY src ./src
-COPY --from=deps-resolver /app/node_modules.tar ./
+# build
+RUN turbo run build --filter @growi/pdf-converter
 
-RUN tar -xf node_modules.tar \
-  && rm node_modules.tar \
-  && yarn build \
-  && tar -cf packages.tar \
-    package.json \
-    yarn.lock \
-    dist \
-  && rm -rf node_modules
+# make artifacts
+RUN pnpm deploy out --prod --filter @growi/pdf-converter
+RUN rm -rf apps/pdf-converter/node_modules && mv out/node_modules apps/pdf-converter/node_modules
+RUN tar -zcf packages.tar.gz \
+  package.json \
+  apps/pdf-converter/package.json \
+  apps/pdf-converter/dist \
+  apps/pdf-converter/.env \
+  apps/pdf-converter/node_modules
 
 
-########################################################################
-# production
-########################################################################
+
+##
+## release
+##
 FROM node:20-slim
+LABEL maintainer="Yuki Takei <yuki@weseek.co.jp>"
 
-ENV NODE_ENV=production
-ENV PUPPETEER_EXECUTABLE_PATH=/usr/bin/chromium
-ENV LANG=ja_JP.UTF-8
+ENV NODE_ENV="production"
+ENV PUPPETEER_EXECUTABLE_PATH="/usr/bin/chromium"
+ENV LANG="ja_JP.UTF-8"
 
-RUN apt-get update && apt-get install -y tini chromium locales fonts-ipafont fonts-ipaexfont fonts-ipafont-gothic fonts-ipafont-mincho && apt-get clean \
-    && rm -rf /var/lib/apt/lists/* \
-    && echo "ja_JP UTF-8" > /etc/locale.gen && locale-gen
+ENV optDir="/opt"
+ENV appDir="${optDir}/pdf-converter"
 
-USER node
-WORKDIR /app
+RUN apt-get update && apt-get install -y chromium locales fonts-ipafont fonts-ipaexfont fonts-ipafont-gothic fonts-ipafont-mincho \
+    && apt-get clean \
+    && rm -rf /var/lib/apt/lists/*; \
+    echo "ja_JP UTF-8" > /etc/locale.gen && locale-gen;
 
-COPY --from=deps-resolver-prod --chown=node:node \
-  /app/node_modules.tar ./
+# copy artifacts
 COPY --from=builder --chown=node:node \
-  /app/packages.tar ./
+  ${optDir}/packages.tar.gz ${appDir}/
 
-RUN tar -xf node_modules.tar \
-  && tar -xf packages.tar \
-  && rm node_modules.tar packages.tar
+USER node
+WORKDIR ${appDir}
+RUN tar -xf packages.tar.gz && rm packages.tar.gz
 
-# change permission for shared volume
-RUN mkdir -p /tmp/page-bulk-export && chmod -R 777 /tmp/page-bulk-export
+WORKDIR ${appDir}/apps/pdf-converter
 
 EXPOSE 3010
 
-ENTRYPOINT ["/usr/bin/tini", "-e", "143", "--"]
 CMD ["node", "dist/index.js"]