# docker-compose.yml

services:

  gitlab:
    image: gitlab/gitlab-ce:latest
    container_name: adp_gitlab
    restart: unless-stopped
    # hostname: gitlab.example.com
    hostname: '<IP 주소>'
    environment:
      GITLAB_OMNIBUS_CONFIG: |
        # external_url 'http://gitlab.example.com'
        external_url 'http://<IP주소>:8080'
        gitlab_rails['gitlab_shell_ssh_port'] = 2222
    ports:
      # - "8080:80"
      - "8080:8080" # 요기가 핵심 (80 port를 변경하고자하는 port로 변경해줘야함.)
      - "8443:443"
      - "2222:22"
    volumes:
      - /data001/dev/gitlab/config:/etc/gitlab
      - /logs001/dev/gitlab/logs:/var/log/gitlab
      - /data001/dev/gitlab/data:/var/opt/gitlab
    networks:
      - my-network
    deploy:
      resources:
        limits:
          memory: 4G
          cpus: '3.0'
        reservations:
          memory: 2G
          cpus: '1.5'
    # 리소스 제한 (Docker Compose v2.1+)
    mem_limit: 4g
    mem_reservation: 2g
    cpus: 3.0

  gitlab-runner:
    image: gitlab/gitlab-runner:latest
    container_name: adp_gitlab_runner
    restart: unless-stopped
    depends_on:
      - gitlab
    volumes:
      # Docker 명령어 실행 가능
      - /var/run/docker.sock:/var/run/docker.sock
      - /data001/dev/gitlab-runner/config:/etc/gitlab-runner
      - /logs001/dev/gitlab-runner/logs:/var/log/gitlab-runner
      - /data001/dev/gitlab-runner/data:/home/gitlab-runner
      # - gitlab_runner_data:/home/gitlab-runner
    networks:
      - my-network
    deploy:
      resources:
        limits:
          memory: 2G
          cpus: '2.0'
        reservations:
          memory: 1G
          cpus: '1.0'
    # 리소스 제한 (Docker Compose v2.1+)
    mem_limit: 2g
    mem_reservation: 1g
    cpus: 2.0

# 캐싱
volumes:
  pip-cache:
  gitlab_data:
    driver: local
    driver_opts:
      type: none
      o: bind
      device: /data001/dev/gitlab/data
  gitlab_runner_data:
    driver: local
    driver_opts:
      type: none
      o: bind
      device: /data001/dev/gitlab-runner/data

networks:
  my-network:
    driver: bridge

 

# 8080 포트 사용할 때, gitlab 내부적으로 사용하는 puma 기본 포트(8080) 충돌로 정상 동작하지 않고, 502 Error를 반환한다.

아래 경로에서, vi 에디터로 파일을 열어서 puma 부분 주석을 풀어 포트와 주소를 수정해주고, 재기동이 필요하다.

# volume 설정되어 있는 경로
/data001/dev/gitlab/config/gitlab.rb
# container 내부 경로
/etc/gitlab/gitlab.rb
...
puma['listen'] = '127.0.0.1'
puma['port'] = 7776 # 8080
...

 

 

# 출처

- https://codingdog.tistory.com/entry/gitlab-8080-%ED%8F%AC%ED%8A%B8-%EB%8C%80%EC%8B%A0-%EB%8B%A4%EB%A5%B8-%ED%8F%AC%ED%8A%B8%EB%A5%BC-%EC%82%AC%EC%9A%A9%ED%95%98%EA%B2%8C-%EB%B0%94%EA%BF%94%EB%B4%85%EC%8B%9C%EB%8B%A4

  • 네이버 블러그 공유하기
  • 네이버 밴드에 공유하기
  • 페이스북 공유하기
  • 카카오스토리 공유하기