forked from directus/directus
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathDockerfile
61 lines (45 loc) · 1.81 KB
/
Dockerfile
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
# syntax=docker/dockerfile:1.4
####################################################################################################
## Prepare Workspace
FROM node:18-alpine AS workspace
WORKDIR /workspace
COPY pnpm-lock.yaml .
RUN corepack enable && corepack prepare [email protected] --activate
RUN 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 --workspace-concurrency=1 run build
RUN pnpm --filter directus deploy --prod pruned
RUN cd pruned \
&& pnpm pack \
&& tar -zxvf *.tgz package/package.json \
&& mv package/package.json package.json \
&& rm -r *.tgz package \
&& mkdir database extensions uploads
# Certs needed to verify RDS endpoints
RUN apk update && apk add ca-certificates
RUN wget https://truststore.pki.rds.amazonaws.com/global/global-bundle.pem -P /usr/local/share/ca-certificates -O /usr/local/share/ca-certificates/aws-rds-global-bundle.crt && update-ca-certificates
####################################################################################################
## Create Production Image
FROM node:18-alpine
WORKDIR /directus
EXPOSE 8055
ENV DB_CLIENT="sqlite3"
ENV DB_FILENAME="/directus/database/database.sqlite"
ENV EXTENSIONS_PATH="/directus/extensions"
ENV STORAGE_LOCAL_ROOT="/directus/uploads"
ENV NODE_ENV="production"
ENV NPM_CONFIG_UPDATE_NOTIFIER="false"
COPY --from=pruned --chown=node:node /workspace/pruned .
COPY --from=pruned /etc/ssl/certs/ca-certificates.crt /etc/ssl/certs/
VOLUME /directus/database
VOLUME /directus/extensions
VOLUME /directus/uploads
USER node
CMD node ./dist/cli/run.js bootstrap \
&& node ./dist/cli/run.js start