-
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathDockerfile
More file actions
80 lines (46 loc) · 1.82 KB
/
Dockerfile
File metadata and controls
80 lines (46 loc) · 1.82 KB
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
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
#############
# Serve Nuxt in development mode.
FROM node:24.14.0-alpine@sha256:7fddd9ddeae8196abf4a3ef2de34e11f7b1a722119f91f28ddf1e99dcafdf114 AS development
COPY ./docker/entrypoint.sh /usr/local/bin/docker-entrypoint.sh
RUN corepack enable
WORKDIR /srv/app/
VOLUME /srv/.pnpm-store
VOLUME /srv/app
ENTRYPOINT ["docker-entrypoint.sh"]
CMD ["pnpm", "run", "dev"]
# Waiting for https://github.com/nuxt/framework/issues/6915
# HEALTHCHECK --interval=10s CMD wget -O /dev/null http://localhost:3000/api/healthcheck || exit 1
########################
# Prepare Nuxt.
FROM node:24.14.0-alpine@sha256:7fddd9ddeae8196abf4a3ef2de34e11f7b1a722119f91f28ddf1e99dcafdf114 AS prepare
# The `CI` environment variable must be set for pnpm to run in headless mode
ENV CI=true
WORKDIR /srv/app/
COPY ./pnpm-lock.yaml package.json ./
RUN corepack enable \
&& pnpm fetch
COPY ./ ./
RUN pnpm install --offline
########################
# Build Nuxt.
FROM node:24.14.0-alpine@sha256:7fddd9ddeae8196abf4a3ef2de34e11f7b1a722119f91f28ddf1e99dcafdf114 AS build
ARG NUXT_PUBLIC_STACK_DOMAIN=jonas-thelemann.de
ENV NUXT_PUBLIC_STACK_DOMAIN=${NUXT_PUBLIC_STACK_DOMAIN}
WORKDIR /srv/app/
COPY --from=prepare /srv/app/ ./
ENV NODE_ENV=production
RUN corepack enable \
&& pnpm --dir src run generate
########################
# Nuxt: lint
FROM node:24.14.0-alpine@sha256:7fddd9ddeae8196abf4a3ef2de34e11f7b1a722119f91f28ddf1e99dcafdf114 AS lint
WORKDIR /srv/app/
COPY --from=prepare /srv/app/ ./
RUN corepack enable \
&& pnpm --dir src run lint
#######################
# Collect build, lint and test results.
FROM node:24.14.0-alpine@sha256:7fddd9ddeae8196abf4a3ef2de34e11f7b1a722119f91f28ddf1e99dcafdf114 AS collect
WORKDIR /srv/app/
COPY --from=build /srv/app/src/.output ./.output
COPY --from=lint /srv/app/package.json /tmp/lint/package.json