이전 글에서 Docker를 이용해 사내 Private GitLab을 올렸다.
앞으로 진행할 프로젝트나 웹 애플리케이션, 데이터베이스 등을 도커로 다 관리할 계획이다.
한 번에 다 Docker-Compose.yml을 작성한다기보다 일단 GitLab을 docker-compose.yml로 작성해 보면서 익힌 다음 여러 애플리케이션이 상호작용할 수 있게 Config 파일을 설정하고, Docker-compose로 한 번에 관리할 수 있도록 하는 것이 목표이다.
이번 글에서는 간단하게 하나의 컨테이너(GitLab)를 올리는 docker-compose.yml 작성법에 대해 알아보도록 하겠다.
공식 문서에 보면 예시가 잘 나와있으므로 참고하도록 한다. (공식 문서: Install Gitlab using Docker Compose 부분)
위와 같이 docker-compose.yml을 작성하고, 각자 환경에 맞게 설정하면 된다.
volumes 위치를 /var/gitlab/{config, logs, data}로 설정하고, ports 변경 및 Timezone 설정을 진행하였음.
이전 글에서 사용했던 command를 참고하면
sudo docker run --detach \
--hostname gitlab.example.com \
--publish 9080:80 --publish 10022:22 \
--name gitlab \
--restart always \
--volume $GITLAB_HOME/config:/etc/gitlab \
--volume $GITLAB_HOME/logs:/var/log/gitlab \
--volume $GITLAB_HOME/data:/var/opt/gitlab \
gitlab/gitlab-ee:latest
volume 옵션으로 gitlab 데이터를 백업하였는데, docker-compose의 volume으로 지정하여 이전 데이터를 Mount 할 수 있도록 설정을 했다.
sudo docker compose up -d // 도커 컴포즈 실행
작성한 yml파일이 있는 위치에서 도커 컴포즈를 실행하면 gitlab 컨테이너가 실행된다.
그런데, GitLab을 띄웠을 때 특이하게 502에러가 발생하였는데, 이는 이전에 있던 도커를 종료하고 재실행하면서 포트가 제대로 안닫히거나 이전 기록에 의해 중첩되어 502 에러를 발생하는 것으로 보였다.
502 에러를 해결하기 위해 블로그를 참고하여 해결 하였다.
sudo docker exec -it <container id> /bin/bash // gitlab 컨테이너에 접속
cd /opt/gitlab/var
ls -al // .pid 파일을 삭제하도록 한다.
다시 gitlab 주소로 이동해 보면 잘 접속되는 것을 확인할 수 있었다.
이전에 등록했던 User도 잘 남아있는 것으로 보아 데이터 Mount도 성공적이었다.
다음번엔 내가 구상한 Server 아키텍처를 가지고 각 서비스를 묶어 관리할 수 있도록 Config파일과 docker-compose.yml을 작성하는 방법을 정리해 볼 것이다. 살짝 검색해 보긴 했는데 뭔가 복잡할 것 같다..
다양한 서비스들을 도커로 관리하면 서버 이전이나 확장할 때 복제하기 매우 편리할 것 같다. 잘 활용해야겠다..
'서버' 카테고리의 다른 글
[모니터링] 모니터링 플랫폼 알아보기 (0) | 2025.02.17 |
---|---|
[아키텍처] 물리 인프라 아키텍처 [1] (0) | 2025.01.08 |
[아키텍처] 하이퍼바이저 아키텍처 (0) | 2024.12.29 |
Docker를 이용한 사내 GitLab 설치하기 (0) | 2023.02.03 |