Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
95 changes: 95 additions & 0 deletions .github/workflows/deploy-admin-docker.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,95 @@
name: Dev Admin CI/CD With Docker

on:
push:
branches:
- develop
paths:
- 'nowait-app-admin-api/**'
- 'nowait-common/**'
- 'nowait-domain/domain-core-rdb/**'
- 'nowait-domain/domain-admin-rdb/**'
- 'nowait-infra/**'
- 'build.gradle'
- 'settings.gradle'
- 'gradle/**'

env:
DOCKERHUB_REPO: jihuneddie/nowait_dev
DIVISION: admin
IMAGE_TAG: ${{ env.DIVISION }}-${{ github.sha }}
EC2_DEPLOY_PATH: /home/ubuntu/spring-github-action-admin-docker


jobs:
build-with-gradle:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v3

- name: Set up JDK 17
uses: actions/setup-java@v3
with:
java-version: '17'
distribution: 'zulu'

- name: Make gradlew executable
run: chmod +x ./gradlew

- name: Set YML
run: |
mkdir -p nowait-app-admin-api/src/main/resources
echo "${{ secrets.APPLICATION_DEV_ADMIN_YML }}" \
| base64 --decode \
> nowait-app-admin-api/src/main/resources/application-admin.yml
find nowait-app-admin-api/src

- name: Build Admin JAR
run: ./gradlew clean :nowait-app-admin-api:bootJar -x test

- name: Login to DockerHub
uses: docker/login-action@v1
with:
username: ${{ secrets.DOCKERHUB_USERNAME }}
password: ${{ secrets.DOCKERHUB_ACCESS_TOKEN }}


- name: Build and Push Docker Image
run: |
docker build -t ${{ secrets.DOCKERHUB_USERNAME }}/admin/nowait-app-admin-api ./nowait-app-admin-api
docker push ${{ secrets.DOCKERHUB_USERNAME }}/admin/nowait-app-admin-api


deploy:
name: Deploy to EC2
runs-on: ubuntu-latest
needs: build-with-gradle

steps:
- uses: actions/checkout@v4
- name: Copy Docker Compose File
uses: appleboy/scp-action@v0.1.7
with:
host: ${{ secrets.EC2_HOST }}
username: ubuntu
key: ${{ secrets.EC2_KEY }}
source: "docker-compose.yml"
target: ${{ env.EC2_DEPLOY_PATH }}

- name: Deploy to EC2
uses: appleboy/ssh-action@v1.0.3
env:
AWS_ACCESS_KEY_ID: ${{ secrets.DEVSERVER_CICD_ACCESS_KEY }}
AWS_SECRET_ACCESS_KEY: ${{ secrets.DEVSERVER_CICD_SECRET_KEY }}
AWS_REGION: ap-northeast-2
with:
host: ${{ secrets.EC2_HOST }}
username: ${{ secrets.EC2_USER }}
key: ${{ secrets.EC2_SSH_KEY }}
envs: AWS_ACCESS_KEY_ID, AWS_SECRET_ACCESS_KEY, AWS_REGION
script: |
cd ${{ env.EC2_DEPLOY_PATH }}
sudo docker-compose pull nowait-app-admin-api
sudo docker-compose up -d nowait-app-admin-api

2 changes: 1 addition & 1 deletion .github/workflows/deploy-admin.yml
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ env:
PROJECT_NAME: NoWait
DIVISION: admin
AWS_REGION: ap-northeast-2
AWS_S3_BUCKET: nowait-deploy-github-actions
AWS_S3_BUCKET: nowait-deploy-github- actions
AWS_CODE_DEPLOY_APPLICATION: nowaiting
AWS_CODE_DEPLOY_GROUP: nowaiting-deploy-dev-admin

Expand Down
49 changes: 49 additions & 0 deletions docker-compose.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,49 @@
name: nowait_dev

services:
mysql:
image: mysql:8.0
container_name: mysql_nowait_container
environment:
MYSQL_ROOT_PASSWORD: gtable1118!
MYSQL_DATABASE: gtable_dev
MYSQL_USER: developer
MYSQL_PASSWORD: gtable1118!
ports:
- "3306:3306"
volumes:
- mysql_data:/var/lib/mysql

nowait-app-admin-api:
# build:
# context: nowait-app-admin-api
# dockerfile: Dockerfile
image: jihuneddie/admin/nowait-app-admin-api:latest
container_name:
nowait-app-admin-api
ports:
- "8085:8086"
depends_on:
- mysql
volumes:
- ./nowait-app-admin-api:/app
restart:
always

nowait-app-user-api:
build:
context: nowait-app-user-api
dockerfile: Dockerfile
container_name:
nowait-app-user-api
ports:
- "8081:8081"
depends_on:
- mysql
volumes:
- ./nowait-app-user-api:/app
restart:
always

volumes:
mysql_data:
8 changes: 8 additions & 0 deletions nowait-app-admin-api/Dockerfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
FROM openjdk:17
ARG JAR_FILE=./build/libs/*.jar
COPY ${JAR_FILE} nowait-app-admin-api.jar

ARG PROFILE=admin
ENV PROFILE=${PROFILE}

CMD ["java", "-jar", "nowait-app-admin-api.jar", "--spring.profiles.active=${PROFILE}", "-Djava.security.egd=file:/dev/./urandom", "-Duser.timezone=Asia/Seoul"]
8 changes: 8 additions & 0 deletions nowait-app-user-api/Dockerfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
FROM openjdk:17
ARG JAR_FILE=./build/libs/*.jar
COPY ${JAR_FILE} nowait-app-user-api.jar

ARG PROFILE=user
ENV PROFILE=${PROFILE}

CMD ["java", "-jar", "nowait-app-user-api.jar", "--spring.profiles.active=${PROFILE}", "-Djava.security.egd=file:/dev/./urandom", "-Duser.timezone=Asia/Seoul"]
6 changes: 6 additions & 0 deletions nowait-common/Dockerfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
FROM openjdk:17

WORKDIR /app
COPY build/libs/*.jar nowait-common.jar

CMD ["java", "-jar", "nowait-common.jar"]