Skip to content

Commit f8f88f1

Browse files
authored
Merge pull request #163 from CEOS-Developers/refact/os-migration
[refact] linux os로 마이그레이션
2 parents 695bb46 + 1217f28 commit f8f88f1

4 files changed

Lines changed: 165 additions & 74 deletions

File tree

.github/workflows/deploy_dev.yml

Lines changed: 21 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -10,14 +10,17 @@ permissions:
1010

1111
jobs:
1212
build:
13-
# runs-on을 ubuntu-lastest에서 변경했음
14-
# 참고자료 https://docs.github.com/en/actions/using-workflows/workflow-syntax-for-github-actions#jobsjob_idruns-on
15-
runs-on: linux
13+
runs-on: ubuntu-latest
1614
steps:
1715
# 기본 체크아웃
1816
- name: Checkout
1917
uses: actions/checkout@v3
2018

19+
- name: Make application-secret.yml without env
20+
run: |
21+
touch ./src/main/resources/application-secret.yml
22+
echo "${{ secrets.APPLICATION_SECRET_DEV }}" > ./src/main/resources/application-secret.yml
23+
2124
# JDK version 설정
2225
- name: Set up JDK 17
2326
uses: actions/setup-java@v3
@@ -30,20 +33,29 @@ jobs:
3033
run: ./gradlew bootJar
3134

3235
- name: Login to DockerHub
33-
uses: docker/login-action@v1
36+
uses: docker/login-action@v3
3437
with:
3538
username: ${{ secrets.DOCKER_USERNAME }}
3639
password: ${{ secrets.DOCKER_PASSWORD }}
3740

38-
- name: Docker build & push
39-
uses: docker/build-push-action@v2
41+
- name: Docker app build & push
42+
uses: docker/build-push-action@v5
4043
with:
4144
context: .
4245
file: ./Dockerfile
4346
platforms: linux/amd64
4447
push: true
4548
tags: ${{ secrets.DOCKER_USERNAME }}/ceos-backend-dev
4649

50+
- name: Docker nginx build & push
51+
uses: docker/build-push-action@v5
52+
with:
53+
context: .
54+
file: ./config/nginx/Dockerfile
55+
platforms: linux/amd64
56+
push: true
57+
tags: ${{ secrets.DOCKER_USERNAME }}/ceos-nginx-dev
58+
4759
# ssh 접근 후 docker 이미지 pull 및 컨테이너 재시작
4860
- name: executing remote ssh commands using password
4961
uses: appleboy/ssh-action@master
@@ -55,13 +67,14 @@ jobs:
5567
cd /home/ec2-user/ceos
5668
5769
sudo touch .env
58-
echo "${{ secrets.ENV_DEV }}" > .env
70+
echo "${{ secrets.ENV_DEV }}" | sudo tee .env > /dev/null
5971
60-
sudo curl -o docker-compose.yml https://raw.githubusercontent.com/CEOS-Developers/CEOS-BE/dev/docker-compose.dev.yml
72+
sudo curl -o docker-compose.dev.yml https://raw.githubusercontent.com/CEOS-Developers/CEOS-BE/dev/docker-compose.dev.yml
6173
6274
sudo chmod 666 /var/run/docker.sock
6375
sudo docker rm -f $(docker ps -qa)
6476
sudo docker pull ${{ secrets.DOCKER_USERNAME }}/ceos-backend-dev
77+
sudo docker pull ${{ secrets.DOCKER_USERNAME }}/ceos-nginx-dev
6578
docker-compose -f docker-compose.dev.yml --env-file ./.env up -d
6679
docker image prune -f
6780

.github/workflows/deploy_prod.yml

Lines changed: 142 additions & 62 deletions
Original file line numberDiff line numberDiff line change
@@ -16,94 +16,174 @@ jobs:
1616
- name: Checkout
1717
uses: actions/checkout@v3
1818

19+
- name: Make application-secret.yml without env
20+
run: |
21+
touch ./src/main/resources/application-secret.yml
22+
echo "${{ secrets.APPLICATION_SECRET }}" > ./src/main/resources/application-secret.yml
23+
1924
# JDK version 설정
2025
- name: Set up JDK 17
2126
uses: actions/setup-java@v3
2227
with:
2328
java-version: '17'
2429
distribution: 'temurin'
2530

26-
# 그래들 캐싱
27-
- name: Gradle Caching
28-
uses: actions/cache@v3
29-
with:
30-
path: |
31-
~/.gradle/caches
32-
~/.gradle/wrapper
33-
key: ${{ runner.os }}-gradle-${{ hashFiles('**/*.gradle*', '**/gradle-wrapper.properties') }}
34-
restore-keys: |
35-
${{ runner.os }}-gradle-
36-
37-
- name: Make application-secret.yml without env
38-
run: |
39-
touch ./src/main/resources/application-secret.yml
40-
echo "${{ secrets.APPLICATION_SECRET }}" > ./src/main/resources/application-secret.yml
41-
env:
42-
PROPERTIES_DEV: ${{ secrets.APPLICATION_SECRET }}
43-
44-
- name: Make env
45-
run: |
46-
touch .env
47-
echo "${{ secrets.ENV_PROD }}" > .env
48-
env:
49-
PROPERTIES_DEV: ${{ secrets.ENV_PROD }}
50-
51-
# Gradle build
31+
## gradle build
5232
- name: Build with Gradle
53-
run: ./gradlew build -x test :spotlessApply
54-
55-
- name: Docker meta
56-
id: docker_meta
57-
uses: crazy-max/ghaction-docker-meta@v1
58-
with:
59-
images: ceos/ceos-server-dev
60-
61-
- name: Set up Docker Buildx
62-
uses: docker/setup-buildx-action@v1
33+
run: ./gradlew bootJar
6334

6435
- name: Login to DockerHub
65-
uses: docker/login-action@v1
36+
uses: docker/login-action@v3
6637
with:
6738
username: ${{ secrets.DOCKER_USERNAME }}
6839
password: ${{ secrets.DOCKER_PASSWORD }}
6940

70-
- name: Docker build & push
71-
uses: docker/build-push-action@v2
41+
- name: Docker app build & push
42+
uses: docker/build-push-action@v5
7243
with:
7344
context: .
7445
file: ./Dockerfile
7546
platforms: linux/amd64
7647
push: true
7748
tags: ${{ secrets.DOCKER_USERNAME }}/ceos-backend
7849

79-
- name: create remote directory
80-
uses: appleboy/ssh-action@master
50+
- name: Docker nginx build & push
51+
uses: docker/build-push-action@v5
8152
with:
82-
host: ${{ secrets.EC2_HOST_PROD }}
83-
username: ubuntu
84-
key: ${{ secrets.EC2_KEY_PROD }}
85-
script: mkdir -p ~/srv/ubuntu/ceos_web_dev
86-
87-
- name: copy source via ssh key
88-
uses: burnett01/rsync-deployments@4.1
89-
with:
90-
switches: -avzr --delete
91-
remote_path: ~/srv/ubuntu/
92-
remote_host: ${{ secrets.EC2_HOST_PROD }}
93-
remote_user: ubuntu
94-
remote_key: ${{ secrets.EC2_KEY_PROD }}
53+
context: .
54+
file: ./config/nginx/Dockerfile
55+
platforms: linux/amd64
56+
push: true
57+
tags: ${{ secrets.DOCKER_USERNAME }}/ceos-nginx
9558

59+
# ssh 접근 후 docker 이미지 pull 및 컨테이너 재시작
9660
- name: executing remote ssh commands using password
9761
uses: appleboy/ssh-action@master
9862
with:
9963
host: ${{ secrets.EC2_HOST_PROD }}
100-
username: ubuntu
64+
username: ec2-user # ubuntu 에서 변경
10165
key: ${{ secrets.EC2_KEY_PROD }}
10266
script: |
103-
sh ~/srv/ubuntu/config/scripts/deploy.sh
104-
sudo docker stop $(sudo docker ps -a -q)
105-
sudo docker rm $(sudo docker ps -a -q)
106-
sudo docker rmi $(sudo docker images -q)
107-
sudo docker-compose -f ~/srv/ubuntu/docker-compose.yml pull
108-
sudo docker-compose -f ~/srv/ubuntu/docker-compose.yml up --build -d
109-
67+
cd /home/ec2-user/ceos
68+
69+
sudo touch .env
70+
echo "${{ secrets.ENV_PROD }}" | sudo tee .env > /dev/null
71+
72+
sudo curl -o docker-compose.yml https://raw.githubusercontent.com/CEOS-Developers/CEOS-BE/main/docker-compose.yml
73+
74+
sudo chmod 666 /var/run/docker.sock
75+
sudo docker rm -f $(docker ps -qa)
76+
sudo docker pull ${{ secrets.DOCKER_USERNAME }}/ceos-backend
77+
sudo docker pull ${{ secrets.DOCKER_USERNAME }}/ceos-nginx
78+
docker-compose -f docker-compose.yml --env-file ./.env up -d
79+
docker image prune -f
80+
81+
#name: Deploy to EC2
82+
#
83+
#on:
84+
# push:
85+
# branches:
86+
# - main
87+
#
88+
#permissions:
89+
# contents: read
90+
#
91+
#jobs:
92+
# build:
93+
# runs-on: ubuntu-latest
94+
# steps:
95+
# # 기본 체크아웃
96+
# - name: Checkout
97+
# uses: actions/checkout@v3
98+
#
99+
# # JDK version 설정
100+
# - name: Set up JDK 17
101+
# uses: actions/setup-java@v3
102+
# with:
103+
# java-version: '17'
104+
# distribution: 'temurin'
105+
#
106+
# # 그래들 캐싱
107+
# - name: Gradle Caching
108+
# uses: actions/cache@v3
109+
# with:
110+
# path: |
111+
# ~/.gradle/caches
112+
# ~/.gradle/wrapper
113+
# key: ${{ runner.os }}-gradle-${{ hashFiles('**/*.gradle*', '**/gradle-wrapper.properties') }}
114+
# restore-keys: |
115+
# ${{ runner.os }}-gradle-
116+
#
117+
# - name: Make application-secret.yml without env
118+
# run: |
119+
# touch ./src/main/resources/application-secret.yml
120+
# echo "${{ secrets.APPLICATION_SECRET }}" > ./src/main/resources/application-secret.yml
121+
# env:
122+
# PROPERTIES_DEV: ${{ secrets.APPLICATION_SECRET }}
123+
#
124+
# - name: Make env
125+
# run: |
126+
# touch .env
127+
# echo "${{ secrets.ENV_PROD }}" > .env
128+
# env:
129+
# PROPERTIES_DEV: ${{ secrets.ENV_PROD }}
130+
#
131+
# # Gradle build
132+
# - name: Build with Gradle
133+
# run: ./gradlew build -x test :spotlessApply
134+
#
135+
# - name: Docker meta
136+
# id: docker_meta
137+
# uses: crazy-max/ghaction-docker-meta@v1
138+
# with:
139+
# images: ceos/ceos-server-dev
140+
#
141+
# - name: Set up Docker Buildx
142+
# uses: docker/setup-buildx-action@v1
143+
#
144+
# - name: Login to DockerHub
145+
# uses: docker/login-action@v1
146+
# with:
147+
# username: ${{ secrets.DOCKER_USERNAME }}
148+
# password: ${{ secrets.DOCKER_PASSWORD }}
149+
#
150+
# - name: Docker build & push
151+
# uses: docker/build-push-action@v2
152+
# with:
153+
# context: .
154+
# file: ./Dockerfile
155+
# platforms: linux/amd64
156+
# push: true
157+
# tags: ${{ secrets.DOCKER_USERNAME }}/ceos-backend
158+
#
159+
# - name: create remote directory
160+
# uses: appleboy/ssh-action@master
161+
# with:
162+
# host: ${{ secrets.EC2_HOST_PROD }}
163+
# username: ubuntu
164+
# key: ${{ secrets.EC2_KEY_PROD }}
165+
# script: mkdir -p ~/srv/ubuntu/ceos_web_dev
166+
#
167+
# - name: copy source via ssh key
168+
# uses: burnett01/rsync-deployments@4.1
169+
# with:
170+
# switches: -avzr --delete
171+
# remote_path: ~/srv/ubuntu/
172+
# remote_host: ${{ secrets.EC2_HOST_PROD }}
173+
# remote_user: ubuntu
174+
# remote_key: ${{ secrets.EC2_KEY_PROD }}
175+
#
176+
# - name: executing remote ssh commands using password
177+
# uses: appleboy/ssh-action@master
178+
# with:
179+
# host: ${{ secrets.EC2_HOST_PROD }}
180+
# username: ubuntu
181+
# key: ${{ secrets.EC2_KEY_PROD }}
182+
# script: |
183+
# sh ~/srv/ubuntu/config/scripts/deploy.sh
184+
# sudo docker stop $(sudo docker ps -a -q)
185+
# sudo docker rm $(sudo docker ps -a -q)
186+
# sudo docker rmi $(sudo docker images -q)
187+
# sudo docker-compose -f ~/srv/ubuntu/docker-compose.yml pull
188+
# sudo docker-compose -f ~/srv/ubuntu/docker-compose.yml up --build -d
189+
#

config/nginx/Dockerfile

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,2 @@
11
FROM nginx:1.23.2
2-
COPY ./default.conf /etc/nginx/conf.d/default.conf
2+
COPY ./config/nginx/default.conf /etc/nginx/conf.d/default.conf

docker-compose.dev.yml

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -11,12 +11,10 @@ services:
1111
- "8080"
1212

1313
nginx:
14+
image: ceos17/ceos-nginx-dev
1415
depends_on:
1516
- backend
1617
restart: always
17-
build:
18-
dockerfile: Dockerfile
19-
context: ./config/nginx
2018
ports:
2119
- "80:80"
2220

0 commit comments

Comments
 (0)