infra: 도커 컴포즈 및 운영서버 CICD 구축#89
Conversation
✅ 테스트 결과 for PRBuild: success 🧪 테스트 실행 with Gradle |
Codecov Report✅ All modified and coverable lines are covered by tests. 📢 Thoughts on this report? Let us know! |
There was a problem hiding this comment.
Pull request overview
This PR modifies the production CI/CD workflow for testing purposes and adds a new docker-compose-prod.yaml configuration file. The changes are explicitly marked as temporary (with Korean comments indicating "테스트 이후에 dev 지울 것" - "remove dev after testing") to test the production pipeline deployment flow.
Changes:
- Added docker-compose-prod.yaml with production-specific service configurations including autoheal, health checks, and resource limits
- Modified push-cd-prod.yml workflow to trigger on 'dev' branch pushes and pull requests (temporary for testing)
- Added SSH port parameter to production server deployment command
Reviewed changes
Copilot reviewed 2 out of 2 changed files in this pull request and generated 4 comments.
| File | Description |
|---|---|
| docker-compose-prod.yaml | New production Docker Compose configuration with spring-app and autoheal services, including comprehensive JVM tuning, health checks, and resource limits |
| .github/workflows/push-cd-prod.yml | Modified workflow triggers to include dev branch and pull requests for testing purposes; added SSH port parameter for production server connection |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
| build: | ||
| context: . | ||
| dockerfile: Dockerfile |
There was a problem hiding this comment.
The Docker image is being built and tagged in the docker-compose file, but this approach can lead to unexpected behavior in production deployments. In a CD pipeline, the image should already be built and pushed to a registry during the CI phase. The docker-compose file should only pull and run the pre-built image, not build it. Consider removing the 'build' section and only keeping the 'image' reference to pull from the registry.
| build: | |
| context: . | |
| dockerfile: Dockerfile |
| branches: [ main, dev ] # Only main branch, 테스트 이후에 dev 지울 것 | ||
| pull_request: | ||
| branches: [ dev, main ] # 테스트 이후에 지울 것 | ||
| types: [ opened, synchronize, reopened ] | ||
|
|
There was a problem hiding this comment.
This workflow is designed for production deployments but now triggers on 'dev' branch pushes and pull requests. This is a significant security and operational risk as it could deploy untested code to production. Production CD workflows should only trigger on the main/master branch and should not trigger on pull requests. The temporary test configuration should be removed before merging, or a separate workflow should be created for testing purposes.
| branches: [ main, dev ] # Only main branch, 테스트 이후에 dev 지울 것 | |
| pull_request: | |
| branches: [ dev, main ] # 테스트 이후에 지울 것 | |
| types: [ opened, synchronize, reopened ] | |
| branches: [ main ] |
📋 상세 설명
📊 체크리스트
📆 마감일