Skip to content

Commit b1dfa0b

Browse files
committed
Update and simplify Docker build process
1 parent 6b9e392 commit b1dfa0b

File tree

10 files changed

+175
-2956
lines changed

10 files changed

+175
-2956
lines changed

.dockerignore

Lines changed: 9 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -1,29 +1,11 @@
1-
**/.DS_Store
2-
**/.classpath
3-
**/.dockerignore
4-
**/.env
5-
**/.git
6-
**/.gitignore
7-
**/.project
8-
**/.settings
9-
**/.toolstarget
10-
**/.vs
11-
**/.vscode
12-
**/*.*proj.user
13-
**/*.dbmdl
14-
**/*.jfm
15-
**/charts
16-
**/docker-compose*
17-
**/compose*
18-
**/Dockerfile*
19-
**/node_modules
20-
**/npm-debug.log
21-
**/secrets.dev.yaml
22-
**/values.dev.yaml
23-
**/dist/
24-
server/.cargo/
25-
server/bin
26-
server/target
1+
.DS_Store
2+
.dockerignore
3+
.env
4+
.git
5+
.gitignore
6+
Dockerfile*
277
LICENSE
288
README.md
29-
cli/
9+
build
10+
compose*
11+
node_modules

.github/workflows/build_image.yaml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,7 @@ jobs:
4141
- name: Build and push app image
4242
uses: docker/build-push-action@v5
4343
with:
44-
context: app
44+
target: app
4545
push: true
4646
tags: ${{ steps.meta.outputs.tags }}
4747
labels: ${{ steps.meta.outputs.labels }}
@@ -77,7 +77,7 @@ jobs:
7777
- name: Build and push server image
7878
uses: docker/build-push-action@v5
7979
with:
80-
context: server
80+
target: server
8181
push: true
8282
tags: ${{ steps.meta.outputs.tags }}
8383
labels: ${{ steps.meta.outputs.labels }}

Dockerfile

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
FROM node:20 AS build
2+
ENV PNPM_HOME="/pnpm"
3+
ENV PATH="$PNPM_HOME:$PATH"
4+
RUN corepack enable
5+
COPY . /src
6+
WORKDIR /src
7+
RUN --mount=type=cache,id=pnpm,target=/pnpm/store pnpm i --frozen-lockfile
8+
RUN pnpm run -r build
9+
RUN pnpm deploy --filter=simple-news-app --prod /build/app
10+
RUN pnpm deploy --filter=simple-news-server --prod /build/server
11+
12+
FROM node:20-slim as app
13+
LABEL org.opencontainers.image.source=https://github.com/jason0x43/simple-news
14+
LABEL org.opencontainers.image.description="A simple RSS news reader"
15+
LABEL org.opencontainers.image.licenses="MIT"
16+
COPY --from=build /build/app /app
17+
WORKDIR /app
18+
EXPOSE 3000
19+
ENV NODE_ENV=production
20+
CMD [ "node", "." ]
21+
22+
FROM node:20-slim as server
23+
LABEL org.opencontainers.image.source=https://github.com/jason0x43/simple-news
24+
LABEL org.opencontainers.image.description="A simple RSS news reader"
25+
LABEL org.opencontainers.image.licenses="MIT"
26+
COPY --from=build /build/server /server
27+
WORKDIR /server
28+
EXPOSE 3000
29+
ENV NODE_ENV=production
30+
CMD [ "node", "." ]

app/Dockerfile

Lines changed: 0 additions & 40 deletions
This file was deleted.

app/package.json

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,10 @@
22
"name": "simple-news-app",
33
"description": "A simple RSS reader",
44
"private": true,
5+
"main": "build/index.js",
6+
"files": [
7+
"build"
8+
],
59
"scripts": {
610
"dev": "vite dev",
711
"build": "vite build",

0 commit comments

Comments
 (0)