mirror of
https://github.com/directus/directus.git
synced 2026-01-22 18:18:04 -05:00
* Use `packageManager` field to define pnpm version in one place * Update to pnpm 8.1.0 (see also #17990) * Enforce pnpm >= 8 via `engines` * Clean-up `engines` & remove `volta` * Add dedup workaround, consolidate test env prepare steps * No checkout, no action :-) * Bump minimal pnpm version to 8.1.0 Co-authored-by: Rijk van Zanten <rijkvanzanten@me.com> --------- Co-authored-by: Rijk van Zanten <rijkvanzanten@me.com>
55 lines
1.3 KiB
Docker
55 lines
1.3 KiB
Docker
# syntax=docker/dockerfile:1.4
|
|
|
|
####################################################################################################
|
|
## Build Packages
|
|
|
|
FROM node:18-alpine AS builder
|
|
WORKDIR /directus
|
|
|
|
ENV NODE_OPTIONS=--max-old-space-size=8192
|
|
|
|
COPY package.json .
|
|
RUN corepack enable && corepack prepare
|
|
|
|
COPY pnpm-lock.yaml .
|
|
RUN pnpm fetch
|
|
COPY . .
|
|
RUN pnpm install --recursive --offline --frozen-lockfile
|
|
|
|
RUN : \
|
|
&& pnpm --recursive --workspace-concurrency=1 run build \
|
|
&& pnpm --filter directus deploy --prod dist \
|
|
&& cd dist \
|
|
&& pnpm pack \
|
|
&& tar -zxvf *.tgz package/package.json \
|
|
&& mv package/package.json package.json \
|
|
&& rm -r *.tgz package \
|
|
&& mkdir -p database extensions uploads \
|
|
;
|
|
|
|
####################################################################################################
|
|
## Create Production Image
|
|
|
|
FROM node:18-alpine AS runtime
|
|
|
|
WORKDIR /directus
|
|
|
|
EXPOSE 8055
|
|
|
|
ENV \
|
|
DB_CLIENT="sqlite3" \
|
|
DB_FILENAME="/directus/database/database.sqlite" \
|
|
EXTENSIONS_PATH="/directus/extensions" \
|
|
STORAGE_LOCAL_ROOT="/directus/uploads" \
|
|
NODE_ENV="production" \
|
|
NPM_CONFIG_UPDATE_NOTIFIER="false"
|
|
|
|
COPY --from=builder --chown=node:node /directus/dist .
|
|
|
|
USER node
|
|
|
|
CMD : \
|
|
&& node /directus/dist/cli/run.js bootstrap \
|
|
&& node /directus/dist/cli/run.js start \
|
|
;
|