Skip to content

Commit 6d77cb1

Browse files
committed
⚡️(docker) improve y-provider image
Improve y-provider image by having the node_modules as small as possible. We move split the Dockerfile and add it to the y-provider folder, it will be easier to read and maintain.
1 parent e4a45a5 commit 6d77cb1

File tree

6 files changed

+53
-39
lines changed

6 files changed

+53
-39
lines changed

.github/workflows/docker-hub.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -156,15 +156,15 @@ jobs:
156156
name: Run trivy scan
157157
uses: numerique-gouv/action-trivy-cache@main
158158
with:
159-
docker-build-args: '-f src/frontend/Dockerfile --target y-provider'
159+
docker-build-args: '-f src/frontend/servers/y-provider/Dockerfile --target y-provider'
160160
docker-image-name: 'docker.io/lasuite/impress-frontend:${{ github.sha }}'
161161
continue-on-error: true
162162
-
163163
name: Build and push
164164
uses: docker/build-push-action@v6
165165
with:
166166
context: .
167-
file: ./src/frontend/Dockerfile
167+
file: ./src/frontend/servers/y-provider/Dockerfile
168168
target: y-provider
169169
build-args: DOCKER_USER=${{ env.DOCKER_USER }}:-1000
170170
push: ${{ github.event_name != 'pull_request' }}

CHANGELOG.md

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,10 @@ and this project adheres to
1414
- ✨(backend) add server-to-server API endpoint to create documents #467
1515
- ✨(email) white brand email #412
1616

17+
## Changed
18+
19+
- ⚡️(docker) improve y-provider image #422
20+
1721

1822
## [1.9.0] - 2024-12-11
1923

bin/Tiltfile

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ docker_build(
2020
docker_build(
2121
'localhost:5001/impress-y-provider:latest',
2222
context='..',
23-
dockerfile='../src/frontend/Dockerfile',
23+
dockerfile='../src/frontend/servers/y-provider/Dockerfile',
2424
only=['./src/frontend/', './docker/', './.dockerignore'],
2525
target = 'y-provider',
2626
live_update=[

docker-compose.yml

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -159,17 +159,13 @@ services:
159159
user: ${DOCKER_USER:-1000}
160160
build:
161161
context: .
162-
dockerfile: ./src/frontend/Dockerfile
162+
dockerfile: ./src/frontend/servers/y-provider/Dockerfile
163163
target: y-provider
164164
restart: unless-stopped
165165
env_file:
166166
- env.d/development/common
167167
ports:
168168
- "4444:4444"
169-
volumes:
170-
- ./src/frontend/servers/y-provider:/home/frontend/servers/y-provider
171-
- /home/frontend/servers/y-provider/node_modules/
172-
- /home/frontend/servers/y-provider/dist/
173169

174170
kc_postgresql:
175171
image: postgres:14.3

src/frontend/Dockerfile

Lines changed: 3 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -1,33 +1,3 @@
1-
FROM node:20-alpine AS frontend-deps-y-provider
2-
3-
WORKDIR /home/frontend/
4-
5-
COPY ./src/frontend/package.json ./package.json
6-
COPY ./src/frontend/yarn.lock ./yarn.lock
7-
COPY ./src/frontend/servers/y-provider/package.json ./servers/y-provider/package.json
8-
COPY ./src/frontend/packages/eslint-config-impress/package.json ./packages/eslint-config-impress/package.json
9-
10-
RUN yarn install
11-
12-
COPY ./src/frontend/ .
13-
14-
# Copy entrypoint
15-
COPY ./docker/files/usr/local/bin/entrypoint /usr/local/bin/entrypoint
16-
17-
# ---- y-provider ----
18-
FROM frontend-deps-y-provider AS y-provider
19-
20-
WORKDIR /home/frontend/servers/y-provider
21-
RUN yarn build
22-
23-
# Un-privileged user running the application
24-
ARG DOCKER_USER
25-
USER ${DOCKER_USER}
26-
27-
ENTRYPOINT [ "/usr/local/bin/entrypoint" ]
28-
29-
CMD ["yarn", "start"]
30-
311
FROM node:20-alpine AS frontend-deps
322

333
WORKDIR /home/frontend/
@@ -40,7 +10,9 @@ COPY ./src/frontend/packages/eslint-config-impress/package.json ./packages/eslin
4010
RUN yarn install --frozen-lockfile
4111

4212
COPY .dockerignore ./.dockerignore
43-
COPY ./src/frontend/ .
13+
COPY ./src/frontend/.prettierrc.js ./.prettierrc.js
14+
COPY ./src/frontend/packages/eslint-config-impress ./packages/eslint-config-impress
15+
COPY ./src/frontend/apps/impress ./apps/impress
4416

4517
### ---- Front-end builder image ----
4618
FROM frontend-deps AS impress
Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,42 @@
1+
FROM node:20-alpine AS y-provider-builder
2+
3+
WORKDIR /home/frontend/
4+
5+
COPY ./src/frontend/package.json ./package.json
6+
COPY ./src/frontend/yarn.lock ./yarn.lock
7+
COPY ./src/frontend/servers/y-provider/package.json ./servers/y-provider/package.json
8+
COPY ./src/frontend/packages/eslint-config-impress/package.json ./packages/eslint-config-impress/package.json
9+
10+
RUN yarn install
11+
12+
COPY ./src/frontend/packages/eslint-config-impress ./packages/eslint-config-impress
13+
COPY ./src/frontend/servers/y-provider ./servers/y-provider
14+
15+
WORKDIR /home/frontend/servers/y-provider
16+
RUN yarn build
17+
18+
FROM node:20-alpine AS y-provider
19+
20+
WORKDIR /home/frontend/
21+
22+
COPY ./src/frontend/package.json ./package.json
23+
COPY ./src/frontend/yarn.lock ./yarn.lock
24+
COPY ./src/frontend/servers/y-provider/package.json ./servers/y-provider/package.json
25+
26+
WORKDIR /home/frontend/servers/y-provider
27+
28+
COPY --from=y-provider-builder \
29+
/home/frontend/servers/y-provider/dist \
30+
./dist
31+
32+
RUN NODE_ENV=production yarn install --frozen-lockfile
33+
34+
# Un-privileged user running the application
35+
ARG DOCKER_USER
36+
USER ${DOCKER_USER}
37+
38+
# Copy entrypoint
39+
COPY ./docker/files/usr/local/bin/entrypoint /usr/local/bin/entrypoint
40+
ENTRYPOINT [ "/usr/local/bin/entrypoint" ]
41+
42+
CMD ["yarn", "start"]

0 commit comments

Comments
 (0)