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
38 changes: 29 additions & 9 deletions .github/workflows/dev-build-deploy.yml
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
name: Build and Deploy to Dev Server
name: Build and Deploy to Development Server

on:
push:
Expand Down Expand Up @@ -28,8 +28,9 @@ jobs:

- name: Build with Gradle Wrapper
run: |
./gradlew clean build -p aics-api -x test
./gradlew clean build -p aics-admin -x test
./gradlew clean build -p aics-api -x test
./gradlew clean build -p aics-auth -x test

# DockerHub 로그인
- name: Docker login
Expand All @@ -39,32 +40,46 @@ jobs:
password: ${{ secrets.DOCKERHUB_PASSWORD }}

# Docker 이미지 빌드
- name: Docker image build for aics-admin
run: |
docker build -t ${{ secrets.DOCKERHUB_USERNAME }}/aics-admin:${{ github.sha }} -f aics-admin/Dockerfile .
docker tag ${{ secrets.DOCKERHUB_USERNAME }}/aics-admin:${{ github.sha }} ${{ secrets.DOCKERHUB_USERNAME }}/aics-admin:latest

- name: Docker image build for aics-api
run: |
docker build -t ${{ secrets.DOCKERHUB_USERNAME }}/aics-api:${{ github.sha }} -f aics-api/Dockerfile .
docker tag ${{ secrets.DOCKERHUB_USERNAME }}/aics-api:${{ github.sha }} ${{ secrets.DOCKERHUB_USERNAME }}/aics-api:latest

- name: Docker image build for aics-admin
- name: Docker image build for aics-auth
run: |
docker build -t ${{ secrets.DOCKERHUB_USERNAME }}/aics-admin:${{ github.sha }} -f aics-admin/Dockerfile .
docker tag ${{ secrets.DOCKERHUB_USERNAME }}/aics-admin:${{ github.sha }} ${{ secrets.DOCKERHUB_USERNAME }}/aics-admin:latest
docker build -t ${{ secrets.DOCKERHUB_USERNAME }}/aics-auth:${{ github.sha }} -f aics-auth/Dockerfile .
docker tag ${{ secrets.DOCKERHUB_USERNAME }}/aics-auth:${{ github.sha }} ${{ secrets.DOCKERHUB_USERNAME }}/aics-auth:latest

# Docker Hub 이미지 푸시
- name: docker Hub push for aics-admin
run: |
docker push ${{ secrets.DOCKERHUB_USERNAME }}/aics-admin:${{ github.sha }}
docker push ${{ secrets.DOCKERHUB_USERNAME }}/aics-admin:latest

- name: docker Hub push for aics-api
run: |
docker push ${{ secrets.DOCKERHUB_USERNAME }}/aics-api:${{ github.sha }}
docker push ${{ secrets.DOCKERHUB_USERNAME }}/aics-api:latest

- name: docker Hub push for aics-admin
- name: docker Hub push for aics-auth
run: |
docker push ${{ secrets.DOCKERHUB_USERNAME }}/aics-admin:${{ github.sha }}
docker push ${{ secrets.DOCKERHUB_USERNAME }}/aics-admin:latest
docker push ${{ secrets.DOCKERHUB_USERNAME }}/aics-auth:${{ github.sha }}
docker push ${{ secrets.DOCKERHUB_USERNAME }}/aics-auth:latest

deploy-to-dev:
runs-on: ubuntu-latest
needs: build-docker-image
environment: dev

steps:
- name: checkout repository
uses: actions/checkout@v3

- name: SSH to server and deploy
uses: appleboy/ssh-action@v1.1.0
with:
Expand All @@ -73,7 +88,12 @@ jobs:
password: ${{ secrets.SERVER_PASSWORD }}
port: ${{ secrets.SERVER_PORT }}
script: |
echo "${{ secrets.SERVER_PASSWORD }}" | scp docker/development/docker-compose.yml ${{ secrets.SERVER_USERNAME }}@${{ secrets.SERVER_HOST }}:${{ secrets.DOCKER_COMPOSE_PATH }}

echo "${{ secrets.SERVER_PASSWORD }}" | sudo -S docker-compose -f ${{ secrets.DOCKER_COMPOSE_YAML_PATH }} pull aics-api
echo "${{ secrets.SERVER_PASSWORD }}" | sudo -S docker-compose -f ${{ secrets.DOCKER_COMPOSE_YAML_PATH }} pull aics-admin
echo "${{ secrets.SERVER_PASSWORD }}" | sudo -S docker-compose -f ${{ secrets.DOCKER_COMPOSE_YAML_PATH }} pull aics-auth

echo "${{ secrets.SERVER_PASSWORD }}" | sudo -S docker-compose -f ${{ secrets.DOCKER_COMPOSE_YAML_PATH }} up -d aics-api
echo "${{ secrets.SERVER_PASSWORD }}" | sudo -S docker-compose -f ${{ secrets.DOCKER_COMPOSE_YAML_PATH }} up -d aics-admin
echo "${{ secrets.SERVER_PASSWORD }}" | sudo -S docker-compose -f ${{ secrets.DOCKER_COMPOSE_YAML_PATH }} up -d aics-admin
echo "${{ secrets.SERVER_PASSWORD }}" | sudo -S docker-compose -f ${{ secrets.DOCKER_COMPOSE_YAML_PATH }} up -d aics-auth
5 changes: 1 addition & 4 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,4 @@ out/
/.nb-gradle/

### VS Code ###
.vscode/

### Docker ###
docker-compose.yml
.vscode/
66 changes: 66 additions & 0 deletions docker/development/docker-compose.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,66 @@
version: '3.8'

services:
aics-api:
image: ${DOCKER_USERNAME}/aics-api:latest
container_name: aics-api
ports:
- "${AICS_API_PORT}:8080"
depends_on:
- postgres
- redis
networks:
- aics-network

aics-admin:
image: ${DOCKER_USERNAME}/aics-admin:latest
container_name: aics-admin
ports:
- "${AICS_ADMIN_PORT}:8081"
depends_on:
- postgres
- redis
networks:
- aics-network

aics-auth:
image: ${DOCKER_USERNAME}/aics-auth:latest
container_name: aics-auth
ports:
- "${AICS_AUTH_PORT}:8082"
depends_on:
- postgres
- redis
networks:
- aics-network

postgres:
image: postgres:15
container_name: postgres-db
restart: always
ports:
- "${POSTGRES_PORT}:5432"
environment:
POSTGRES_USER: ${DB_USERNAME}
POSTGRES_PASSWORD: ${DB_PASSWORD}
volumes:
- postgres-data:${DB_VOLUME_PATH}
networks:
- aics-network

redis:
image: redis:latest
container_name: redis
restart: always
command: redis-server
ports:
- "${REDIS_PORT}:6379"
networks:
- aics-network

networks:
aics-network:
driver: bridge

volumes:
postgres-data:
Empty file added docker/production/.gitkeep
Empty file.