Docs: [main] compose.apps.yml 파일에 대한 설명
All checks were successful
baekjoon-bot-cicd / build_push_deploy (push) Successful in 2m3s
All checks were successful
baekjoon-bot-cicd / build_push_deploy (push) Successful in 2m3s
This commit is contained in:
@@ -98,7 +98,7 @@ curl -s http://localhost:8000/ | cat
|
|||||||
1) (수동) checkout: Gitea 서브패스(`/gitea`)를 고려해 `git init` + `git fetch`로 소스 가져옴
|
1) (수동) checkout: Gitea 서브패스(`/gitea`)를 고려해 `git init` + `git fetch`로 소스 가져옴
|
||||||
2) Docker Hub 로그인
|
2) Docker Hub 로그인
|
||||||
3) 이미지 빌드/푸시: `${DOCKERHUB_USERNAME}/baekjoon-bot:latest`
|
3) 이미지 빌드/푸시: `${DOCKERHUB_USERNAME}/baekjoon-bot:latest`
|
||||||
4) 서버 배포: 서버에 존재하는 compose 파일(`/nkeysworld/compose.yml`)로 `pull/up -d` 수행
|
4) 서버 배포: 서버에 존재하는 app 관련 compose 파일(`/nkeysworld/compose.apps.yml`)로 `pull/up -d` 수행
|
||||||
5) Discord Webhook으로 성공/실패 알림 전송
|
5) Discord Webhook으로 성공/실패 알림 전송
|
||||||
|
|
||||||
### Required Secrets
|
### Required Secrets
|
||||||
|
|||||||
@@ -123,8 +123,8 @@ docker push "${IMAGE}"
|
|||||||
### Deploy
|
### Deploy
|
||||||
- 워크플로우 배포는 레포 내부 파일이 아닌 서버(또는 self-hosted runner)에 존재하는 compose 파일을 사용합니다.
|
- 워크플로우 배포는 레포 내부 파일이 아닌 서버(또는 self-hosted runner)에 존재하는 compose 파일을 사용합니다.
|
||||||
```bash
|
```bash
|
||||||
docker compose -f /nkeysworld/compose.yml pull baekjoon-bot
|
docker compose -f /nkeysworld/compose.apps.yml pull baekjoon-bot
|
||||||
docker compose -f /nkeysworld/compose.yml up -d baekjoon-bot
|
docker compose -f /nkeysworld/compose.apps.yml up -d baekjoon-bot
|
||||||
docker image prune -f
|
docker image prune -f
|
||||||
```
|
```
|
||||||
|
|
||||||
|
|||||||
@@ -5,7 +5,6 @@
|
|||||||
- Dockerfile 기반 단일 컨테이너 실행 (`dockerfile`)
|
- Dockerfile 기반 단일 컨테이너 실행 (`dockerfile`)
|
||||||
- (참고) 로컬에서 Uvicorn 직접 실행
|
- (참고) 로컬에서 Uvicorn 직접 실행
|
||||||
|
|
||||||
> Docker Compose / Kubernetes / Terraform 관련 파일은 레포에 없습니다.
|
|
||||||
|
|
||||||
## Production Checklist
|
## Production Checklist
|
||||||
- Secrets/ENV:
|
- Secrets/ENV:
|
||||||
@@ -95,9 +94,9 @@ docker logs -f baekjoon-bot
|
|||||||
- (기존) Dockerfile 기반 단일 컨테이너 실행: `dockerfile`
|
- (기존) Dockerfile 기반 단일 컨테이너 실행: `dockerfile`
|
||||||
- (추가) Gitea Actions 기반 CI/CD: `.gitea/workflows/cicd.yml`
|
- (추가) Gitea Actions 기반 CI/CD: `.gitea/workflows/cicd.yml`
|
||||||
- Docker Hub로 이미지 푸시 후,
|
- Docker Hub로 이미지 푸시 후,
|
||||||
- 러너/서버에서 `docker compose -f /nkeysworld/compose.yml pull/up`으로 배포
|
- 러너/서버에서 `docker compose -f /nkeysworld/compose.apps.yml pull/up`으로 배포
|
||||||
|
|
||||||
> 참고: 레포에는 Docker Compose 파일이 포함되어 있지 않습니다. CI/CD 배포는 서버에 존재하는 `/nkeysworld/compose.yml`을 사용합니다.
|
> 참고: 레포에는 Docker Compose 파일이 포함되어 있지 않습니다. CI/CD 배포는 서버에 존재하는 `/nkeysworld/compose.apps.yml`을 사용합니다.
|
||||||
|
|
||||||
## Deployment
|
## Deployment
|
||||||
### CI/CD (Gitea Actions)
|
### CI/CD (Gitea Actions)
|
||||||
@@ -110,7 +109,7 @@ Workflow: `.gitea/workflows/cicd.yml`
|
|||||||
- (1) Manual checkout (Gitea `/gitea` 서브패스 고려)
|
- (1) Manual checkout (Gitea `/gitea` 서브패스 고려)
|
||||||
- (2) Docker Hub 로그인
|
- (2) Docker Hub 로그인
|
||||||
- (3) 이미지 빌드/푸시: `${DOCKERHUB_USERNAME}/baekjoon-bot:latest`
|
- (3) 이미지 빌드/푸시: `${DOCKERHUB_USERNAME}/baekjoon-bot:latest`
|
||||||
- (4) 배포: `docker compose -f /nkeysworld/compose.yml pull baekjoon-bot` + `up -d baekjoon-bot`
|
- (4) 배포: `docker compose -f /nkeysworld/compose.apps.yml pull baekjoon-bot` + `up -d baekjoon-bot`
|
||||||
- (5) 정리: `docker image prune -f`
|
- (5) 정리: `docker image prune -f`
|
||||||
- (6) 알림: Discord webhook (성공/실패 모두 전송)
|
- (6) 알림: Discord webhook (성공/실패 모두 전송)
|
||||||
|
|
||||||
@@ -122,7 +121,7 @@ Workflow: `.gitea/workflows/cicd.yml`
|
|||||||
#### Server/Runner Prerequisites
|
#### Server/Runner Prerequisites
|
||||||
- `docker` 실행 가능
|
- `docker` 실행 가능
|
||||||
- `docker compose` 실행 가능(워크플로우에 설치 보완 단계가 있으나, 기본적으로 compose가 동작해야 함)
|
- `docker compose` 실행 가능(워크플로우에 설치 보완 단계가 있으나, 기본적으로 compose가 동작해야 함)
|
||||||
- `/nkeysworld/compose.yml` 파일이 존재해야 함
|
- `/nkeysworld/compose.apps.yml` 파일이 존재해야 함
|
||||||
- compose 내 서비스명이 `baekjoon-bot` 이어야 함(워크플로우가 해당 서비스만 `pull/up` 수행)
|
- compose 내 서비스명이 `baekjoon-bot` 이어야 함(워크플로우가 해당 서비스만 `pull/up` 수행)
|
||||||
|
|
||||||
#### Rollback (workflow 기준)
|
#### Rollback (workflow 기준)
|
||||||
|
|||||||
Reference in New Issue
Block a user