Просмотр исходного кода

use pnpm deploy instead of turbo prune

Yuki Takei 1 год назад
Родитель
Сommit
7fe9ad04b7
1 измененных файлов с 8 добавлено и 74 удалено
  1. 8 74
      apps/app/docker/Dockerfile

+ 8 - 74
apps/app/docker/Dockerfile

@@ -21,61 +21,6 @@ RUN pnpm add turbo --global
 
 
 
-##
-## partialrepos
-##
-FROM base AS partialrepos
-
-ENV optDir /opt
-
-WORKDIR ${optDir}
-
-COPY . .
-RUN turbo prune @growi/app --docker
-
-
-##
-## deps-resolver
-##
-FROM base AS deps-resolver
-
-ENV optDir /opt
-
-WORKDIR ${optDir}
-
-RUN set -eux; \
-	apt-get update; \
-	apt-get install -y python3 build-essential;
-
-# copy files
-COPY --from=partialrepos ${optDir}/out/json/ .
-COPY --from=partialrepos ${optDir}/out/pnpm-lock.yaml ./pnpm-lock.yaml
-
-RUN pnpm add node-gyp --global
-RUN pnpm install --no-frozen-lockfile
-
-# make artifacts
-RUN tar -cf node_modules.tar \
-  node_modules \
-  apps/*/node_modules \
-  packages/*/node_modules
-
-
-
-##
-## deps-resolver-prod
-##
-FROM deps-resolver AS deps-resolver-prod
-
-RUN pnpm install --no-frozen-lockfile --prod
-# make artifacts
-RUN tar -zcf node_modules.tar.gz \
-  node_modules \
-  apps/*/node_modules \
-  packages/*/node_modules
-
-
-
 ##
 ## builder
 ##
@@ -85,24 +30,18 @@ ENV optDir /opt
 
 WORKDIR ${optDir}
 
-# copy files
-COPY --from=partialrepos ${optDir}/out/full/ .
-COPY --from=partialrepos ${optDir}/out/pnpm-lock.yaml ./pnpm-lock.yaml
-COPY ["tsconfig.base.json", "./"]
-
-# copy dependent packages
-COPY --from=deps-resolver \
-  ${optDir}/node_modules.tar ${optDir}/
+COPY . .
 
-# extract node_modules.tar
-RUN tar -xf node_modules.tar
-RUN rm node_modules.tar
+RUN pnpm add node-gyp --global
+RUN pnpm install ---frozen-lockfile
 
 # build
 RUN turbo run clean
-RUN turbo run build
+RUN turbo run build --filter @growi/app
 
 # make artifacts
+RUN pnpm --filter @growi/app --prod deploy pruned
+RUN rm -rf apps/app/node_modules && mv pruned/node_modules apps/app/node_modules
 RUN rm -rf apps/app/.next/cache
 RUN tar -zcf packages.tar.gz \
   package.json \
@@ -115,8 +54,7 @@ RUN tar -zcf packages.tar.gz \
   apps/app/.env.production* \
   apps/app/next.config.js \
   apps/app/package.json \
-  packages/*/package.json \
-  packages/*/dist
+  apps/app/node_modules
 
 
 
@@ -147,17 +85,13 @@ RUN apt-get update && apt-get install -y sudo ca-certificates wget --no-install-
 ENV PNPM_HOME="/home/node/.local/share/pnpm"
 ENV PATH "$PNPM_HOME:$PATH"
 
-COPY --from=deps-resolver-prod --chown=node:node \
-  ${optDir}/node_modules.tar.gz ${appDir}/
 COPY --from=builder --chown=node:node \
   ${optDir}/packages.tar.gz ${appDir}/
 
 # extract artifacts as 'node' user
 USER node
 WORKDIR ${appDir}
-RUN tar -zxf node_modules.tar.gz \
-  && tar -zxf packages.tar.gz \
-  && rm node_modules.tar.gz packages.tar.gz
+RUN tar -zxf packages.tar.gz && rm packages.tar.gz
 
 COPY --chown=node:node --chmod=700 apps/app/docker/docker-entrypoint.sh /