|
1 |
| -name: backend-cd-prod |
| 1 | +name: backend-cd-prod-infra |
2 | 2 |
|
3 | 3 | on:
|
4 | 4 | push:
|
|
9 | 9 |
|
10 | 10 | env:
|
11 | 11 | DOCKERHUB_REPOSITORY: ody-official
|
12 |
| - DOCKER_CONTAINER_NAME: ody-prod-app |
13 | 12 |
|
14 | 13 | jobs:
|
15 | 14 | build-and-push:
|
16 | 15 | runs-on: ubuntu-latest
|
17 |
| - |
18 | 16 | defaults:
|
19 | 17 | run:
|
20 | 18 | working-directory: backend
|
21 |
| - |
22 | 19 | steps:
|
23 | 20 | - uses: actions/checkout@v4
|
24 |
| - with: |
25 |
| - ref: main |
26 | 21 |
|
27 | 22 | - name: Set up JDK 17
|
28 | 23 | uses: actions/setup-java@v4
|
@@ -58,35 +53,32 @@ jobs:
|
58 | 53 | password: ${{ secrets.DOCKERHUB_PASSWORD }}
|
59 | 54 |
|
60 | 55 | - name: Docker Image Build And Push
|
61 |
| - run: docker build --platform linux/arm64 -t ${{ secrets.DOCKERHUB_USERNAME }}/$DOCKERHUB_REPOSITORY:${{ github.sha }}-prod -f Dockerfile . --build-arg JASYPT_ENCRYPTOR_PASSWORD=${{ secrets.JASYPT_PASSWORD }} --push |
| 56 | + run: docker build --platform linux/arm64 -t ${{ secrets.DOCKERHUB_USERNAME }}/$DOCKERHUB_REPOSITORY:${{ github.sha }}-prod_v2 -f Dockerfile . --push |
62 | 57 |
|
63 | 58 | pull-and-deploy:
|
64 | 59 | needs: build-and-push
|
65 |
| - |
66 |
| - runs-on: ${{ matrix.environment }} |
67 |
| - |
68 |
| - strategy: |
69 |
| - max-parallel: 1 # 직렬처리 |
70 |
| - matrix: |
71 |
| - environment: [ prod] |
72 |
| - |
| 60 | + runs-on: prod |
73 | 61 | steps:
|
74 | 62 | - name: Login to Docker Hub
|
75 | 63 | uses: docker/login-action@v3
|
76 | 64 | with:
|
77 | 65 | username: ${{ secrets.DOCKERHUB_USERNAME }}
|
78 | 66 | password: ${{ secrets.DOCKERHUB_PASSWORD }}
|
79 | 67 |
|
80 |
| - - name: Clean Up Legacy Image And Pull |
| 68 | + - name: Clean Up Legacy Image |
81 | 69 | run: |
|
82 |
| - docker image prune -a -f |
83 |
| - docker pull --platform linux/arm64 ${{ secrets.DOCKERHUB_USERNAME }}/$DOCKERHUB_REPOSITORY:${{ github.sha }}-prod |
| 70 | + pwd |
| 71 | + docker compose down || true |
| 72 | + docker rmi $(docker images -q) -f || true |
84 | 73 |
|
85 |
| - - name: Set up Container And Run Docker Image |
| 74 | + - name: Docker Compose up |
86 | 75 | run: |
|
87 |
| - docker stop $DOCKER_CONTAINER_NAME || true |
88 |
| - docker rm $DOCKER_CONTAINER_NAME || true |
89 |
| - docker run -d --platform linux/arm64 --name $DOCKER_CONTAINER_NAME -v /var/logs/ody-prod-logs:/ody-prod-logs -p 80:8080 -e SPRING_PROFILES_ACTIVE=prod -e JASYPT_ENCRYPTOR_PASSWORD=${{ secrets.JASYPT_PASSWORD }} ${{ secrets.DOCKERHUB_USERNAME }}/$DOCKERHUB_REPOSITORY:${{ github.sha }}-prod |
| 76 | + export DOCKERHUB_USERNAME=${{ secrets.DOCKERHUB_USERNAME }} |
| 77 | + export DOCKERHUB_REPOSITORY=$DOCKERHUB_REPOSITORY |
| 78 | + export DEV_MYSQL_PASSWORD=${{ secrets.DEV_MYSQL_PASSWORD }} |
| 79 | + export JASYPT_ENCRYPTOR_PASSWORD=${{ secrets.JASYPT_PASSWORD }} |
| 80 | + export GIT_SHA=${{ github.sha }} |
| 81 | + docker compose up -d |
90 | 82 |
|
91 | 83 | - name: Check Docker Process
|
92 | 84 | run: docker ps
|
0 commit comments