Skip to content

Commit

Permalink
CD: add github action for prod image build
Browse files Browse the repository at this point in the history
  • Loading branch information
jinho-choi123 committed Apr 26, 2024
1 parent d7e6283 commit 6e2cc9f
Show file tree
Hide file tree
Showing 5 changed files with 450 additions and 10 deletions.
12 changes: 12 additions & 0 deletions .docker/Dockerfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
# Dockerfile for production build
FROM node:18-alpine

WORKDIR /app

COPY ./dist/ /app/

RUN npm install --global serve

EXPOSE 80

ENTRYPOINT ["serve", "-l", "80", "/app"]
12 changes: 12 additions & 0 deletions .docker/docker-compose.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
version: "3"

services:
watch-tower:
image: containrrr/watchtower
volumes:
- /var/run/docker.sock:/var/run/docker.sock
command: --interval 30 --scope zabo-boards
labels: [ "com.centurylinklabs.watchtower.scope=zabo-boards" ]
zabo-boards:
image: ghcr.io/sparcs-kaist/zabo-boards:latest
labels: [ "com.centurylinklabs.watchtower.scope=zabo-boards" ]
50 changes: 50 additions & 0 deletions .github/prod-build-image.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,50 @@
name: Build docker image on tag creation

on:
push:
tags:
- "**"

jobs:
build:
name: Build and push Image to ghcr
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- uses: actions/setup-node@v4
with:
node-version: '18'
- name: Install Yarn
run: npm install --global yarn
- name: Install dependencies
run: yarn & yarn build
- name: Setup Docker buildX
uses: docker/setup-buildx-action@v3
- name: Cache Docker layers
uses: actions/cache@v3
with:
path: /tmp/.buildx-cache
key: ${{runner.os}}-buildx-${{github.sha}}
restore-keys: |
${{runner.os}}-buidx-
- name: Log in to Github Container Registry
run: echo ${{secrets.GITHUB_TOKEN}} | docker login ghcr.io -u USERNAME --password-stdin
- name: Build Static Content
run:
- name: Build and Push Image
id: docker-build
uses: docker/build-push-action@v5
env:
IMAGE_TAG: ${{github.ref_name}}
with:
file: ./.docker/Dockerfile
push: true
tags: |
"ghcr.io/sparcs-kaist/zabo-server:${{ env.IMAGE_TAG }}"
"ghcr.io/sparcs-kaist/zabo-server:latest"
cache-from: type=local,src=/tmp/.buildx-cache
cache-to: type=local,dest=/tmp/.buildx-cache-new
- name: Remove old cache
run: |
rm -rf /tmp/.buildx-cache
mv /tmp/.buildx-cache-new /tmp/.buildx-cache
1 change: 1 addition & 0 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -30,6 +30,7 @@
"react-redux": "^8.1.3",
"react-transition-group": "^4.4.5",
"redux-thunk": "^2.4.2",
"serve": "^14.2.3",
"usehooks-ts": "^2.9.1",
"vite-tsconfig-paths": "^4.2.1"
},
Expand Down
Loading

0 comments on commit 6e2cc9f

Please sign in to comment.