docker-compose.yml
backend:
build:
context: /var/lib/jenkins/.jenkins/workspace/map-sv.site
dockerfile: Dockerfile
container_name: backend
restart: always
depends_on:
- db
environment:
SPRING_DATASOURCE_URL: jdbc:postgresql://db:5432/스키마
SPRING_DATASOURCE_USERNAME: 비공개
SPRING_DATASOURCE_PASSWORD: 비공개
ports:
- "8080:8080"
nginx.conf(default.conf 등등 마운트된 conf 파일을 의미)
worker_processes auto;
events {
worker_connections 1024;
}
http {
include /etc/nginx/mime.types;
default_type application/octet-stream;
sendfile on;
keepalive_timeout 65;
upstream backend {
server backend:8080; # Docker Compose에서 backend 서비스로 요청 전달
}
server {
listen 80;
location / {
proxy_pass http://backend;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
}
}
문제점
Jenkins와 Spring Boot 애플리케이션(backend)이 모두 8080 포트를 사용하려고 하기 때문에 충돌이 발생하였습니다.
이를 해결하려면 Jenkins 또는 backend 서비스의 포트를 변경해야 합니다.
해결 방법
1. Jenkins 포트를 변경
1) /etc/default/jenkins 파일 수정
sudo vi /etc/default/jenkins
- JENKINS_PORT=8080을 JENKINS_PORT=8081 로 변경
- 못 찾으면 Jenkins 설정 파일 경로 확인
- 도커 컨테이너로 띄었으면 그 쪽 컨테이너에 접속해서 수정해야 합니다.
sudo find / -name "jenkins.xml" 2>/dev/null
sudo find / -name "jenkins" 2>/dev/null
2) Jenkins 서비스 재시작
sudo systemctl restart jenkins
3) 변경된 포트로 접속 확인
http://<EC2-퍼블릭-IP>:8081
2. Backend(Spring Boot) 포트 변경
1) docker-compose.yml 수정
backend:
build:
context: /var/lib/jenkins/.jenkins/workspace/map-sv.site
dockerfile: Dockerfile
container_name: backend
restart: always
depends_on:
- db
environment:
SPRING_DATASOURCE_URL: jdbc:postgresql://db:5432/스키마
SPRING_DATASOURCE_USERNAME: 비공개
SPRING_DATASOURCE_PASSWORD: 비공개
ports:
- "9090:9090" # 포트 변경
2) nginx.conf에서 backend 포트 변경
upstream backend {
server backend:9090; # ✅ backend 서비스 포트 변경
}
server {
listen 80;
location / {
proxy_pass http://backend;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
}
3) docker-compose 재배포
docker-compose down
docker-compose up -d --build