Files
directus/Dockerfile
Rijk van Zanten 0d8b3a52c7 Simplify / improve release flow (#17858)
* Remove git-hook

This is already running in GH Actions as well

* Start new Dockerfile

* Remove unused files

* Close, but not quite

* Line break between environment specific commands / operational ones

* Cleanup dockerfile

* Update github release automation

* Update Dockerfile

Co-authored-by: Pascal Jufer <pascal-jufer@bluewin.ch>

* Update Dockerfile

Co-authored-by: Pascal Jufer <pascal-jufer@bluewin.ch>

* Improve based on review comments

* Update Dockerfile

Co-authored-by: Pascal Jufer <pascal-jufer@bluewin.ch>

* Update Dockerfile

Co-authored-by: Pascal Jufer <pascal-jufer@bluewin.ch>

---------

Co-authored-by: Pascal Jufer <pascal-jufer@bluewin.ch>
2023-03-23 13:20:14 -04:00

61 lines
1.6 KiB
Docker

# syntax=docker/dockerfile:1.4
####################################################################################################
## Prepare Workspace
FROM node:18-alpine AS workspace
WORKDIR /workspace
COPY pnpm-lock.yaml .
RUN corepack enable \
&& corepack prepare pnpm@7.30.0 --activate \
&& pnpm fetch
COPY . .
RUN pnpm install --recursive --offline --frozen-lockfile
####################################################################################################
## Create Deployment
FROM workspace AS pruned
WORKDIR /workspace
ENV NODE_OPTIONS=--max-old-space-size=8192
RUN pnpm --recursive run build \
&& pnpm --filter directus deploy --prod pruned
####################################################################################################
## Create Production Image
FROM node:18-alpine
RUN mkdir /directus \
&& mkdir -p /directus/data/database /directus/data/extensions /directus/data/uploads \
&& chown -R node:node /directus/data;
WORKDIR /directus
EXPOSE 8055
ENV DB_CLIENT="sqlite3"
ENV DB_FILENAME="/directus/data/database/database.sqlite"
ENV EXTENSIONS_PATH="/directus/data/extensions"
ENV STORAGE_LOCAL_ROOT="/directus/data/uploads"
ENV NODE_ENV="production"
ENV NPM_CONFIG_UPDATE_NOTIFIER="false"
VOLUME /directus/data/database
VOLUME /directus/data/extensions
VOLUME /directus/data/uploads
COPY --from=pruned /workspace/pruned/dist dist
COPY --from=pruned /workspace/pruned/package.json package.json
COPY --from=pruned /workspace/pruned/node_modules node_modules
USER node
CMD node ./dist/cli/run.js bootstrap \
&& node ./dist/cli/run.js start