GoCD를 Docker로 이용해서 설치해보기
안녕하세요. 달소입니다.
앞서 GoCD에 대해서 알아보았는데요.
이번에는 Docker를 통해서 빠르게 설치해보도록하겠습니다.
설치환경
Ubuntu 24.04 LTS
Docker, Docker compose
GoCD 25.02
GoCD Agent 25.02
먼저 설치할 서버에서 경로를 만들어주고 해당 경로에서 docker-compose.yml 파일을 만들어줍니다.
mkdir -p /opt/stacks/gocd
cd /opt/stacks/gocd
vi docker-compose.yml
# 실행할 서비스(컨테이너)들 정의
services:
# GoCD 서버 서비스
gocd-server:
image: gocd/gocd-server:v25.2.0 # GoCD 서버 최신 공식 이미지 (v25.2.0)
container_name: gocd-server
ports:
# 웹 UI 접속을 위한 8153 포트만 호스트와 연결합니다.
- "8153:8153"
volumes:
# Docker 네임드 볼륨을 사용하여 데이터 영속성 보장
- gocd-server-data:/godata
- gocd-server-home:/home/go
networks:
- gocd-network
# GoCD 에이전트 서비스 (Ubuntu 기반)
gocd-agent:
# 에이전트 이미지를 범용적인 Ubuntu 22.04 기반으로 변경
image: gocd/gocd-agent-ubuntu-22.04:v25.2.0
container_name: gocd-agent
# 오류 발생 시 항상 재시작하여 서버와의 연결을 계속 시도합니다.
restart: always
environment:
# 중요: 서버의 보안 포트(8154) 초기화가 실패하는 문제를 우회하기 위해,
# 일반 웹 UI 포트(8153)를 통해 HTTP로 접속하도록 변경합니다.
# 이 방법은 암호화되지 않지만, 로컬 테스트 환경에서 연결 문제를 해결하는 데 효과적입니다.
- GO_SERVER_URL=http://gocd-server:8153/go
volumes:
# 호스트의 Docker 소켓을 공유해 에이전트가 docker 명령을 사용
- /var/run/docker.sock:/var/run/docker.sock
# Docker 네임드 볼륨을 사용하여 데이터 영속성 보장
- gocd-agent-home:/home/go
networks:
- gocd-network
# 서버 컨테이너가 시작될 때까지 기다립니다.
depends_on:
- gocd-server
# 데이터 영속성을 위한 Docker 네임드 볼륨 정의
volumes:
gocd-server-data:
gocd-server-home:
gocd-agent-home:
# 서비스 간 통신을 위한 Docker 네트워크 정의
networks:
gocd-network:
그리고 docker compose up -d를 통해서 이미지를 받고 컨테이너를 생성합니다.


컨테이너가 모두 뜨게되면 ip:8153 포트로 접근햊쉴 수 있는데요.
접속하면 바로 Pipeline을 구성하라고하는데 일단 에이전트부터 활성화가 필요합니다.
상단에 AGENTS로 가서 에이전트를 누르고 활성화시켜주세요.

이제 다시 메인페이지로 가면 아래처럼 Pipeline을 만드라고하는데요. 해당 부분부터는 다음글에서 좀 더 상세하게 알아보고 설치해보도록하겠습니다.
