안녕하세요 gitlab에 대해서 질문드립니다
안녕하세요.
개발용 CI / CD 환경 구축을 위해 테스트 중입니다.
한 서버에서 도커로 깃랩을 띄우는 과정에서
8082 포트로 80에 바인딩 했는데
/etc/gitlab/gitlab.rb 에서
external_url '[ip:port]'
로 수정후 브라우저에서 접근을 할 수 없고
external_url '[ip]'
로 수정시에는 접근이 가능합니다. 그런데 소스푸쉬 후
이런식으로 주소가 생성되는데 8082 포트번호까지 포함을 안시켜서 문제가 되고 있습니다.
환경은 wsl > ubuntu > docker > gitlab 의 상태이고 공유기를 써서 포트포워딩 상태인데
이러한 설정은 어찌해야 할지 도무지 감이 잡히지 않아 이곳에 문의드립니다.
가장좋은건 기본포트로 사용하시는건데
npm과 같은 리버스프록시를이용해서 도메인으로 이용하시는게어떨가싶습니다
하나의 인스턴스에서 도커컨테이너로 깃랩, 젠킨스, was 를 사용할 환경이여서 포트가 중복되어 이런 저런 방법을 생각해봤는데요..
리버스 프록시란 것도 찾아보겠습니다. 밑바탕 없이 하려니 무한 검색하게되네요 ㅎㅎ...
감사합니다
내부 컨테이너간 포트 중복 문제는 가능하면 docker-compose 를 활용하시는게 좋습니다.
Docker-compose 를 하게 되면,
기본적으로 별도의 네트워크를 생성되고,
그 아래에 해당 컨테이너들 만의 네트워가 되고, 내부 전용 포트를 오픈해서 도커 컨테이너 끼리 통신시에는 포트가 중복 되어도 문제가 없도록 구성이 되기 때문에 Docker-compose로 재구성 해보시는거 추천 드려요..
저는 도커로 구축하고, nginx 프록시로 연결시켰었습니다.
위에 KelvinKang님께서도 말씀하셨지만 docker-compose가 좋긴 하더군요. 제가 적어둔 가이드가 있습니다. 확인해보시고 NPM으로 리버스 프록시 하셔도 괜찮을 것 같습니다.
https://svrforum.com/svr/248566
ExpBox 님 혹시 도커 설치해서 테스트 해보려고 하는데요 혹시라도 도커 설치후 뭔가 실수하거나
실패하면 헤놀로지에 문제가 생길까요?? 이걸 몰라서 설치도 못하고있네요
쪽지 확인 부탁드립니다.
위의 댓글들을의 키워드로 검색해보고 docker-compose.yml 을 수정, 적용해본 결과 충돌없이 external_url을 적용시켰습니다.
댓글 달아주신 분들 모두 감사합니다!
# docker-compose.yml
version: '3.4'
services:
web:
image: 'gitlab/gitlab-ce:latest'
restart: always
hostname: 'bss-gitlab'
mem_limit: 2G
container_name: gitlab
environment:
TZ: 'Asia/Seoul'
GITLAB_OMNIBUS_CONFIG: |
# nginx 설정 없을시 외부접근 충돌로 접근X
external_url 'http://[ip]:8082'
gitlab_rails['gitlab_shell_ssh_port'] = 2242
nginx['enable'] = true
nginx['listen_port'] = 80
nginx['client_max_body_size'] = '10G'
GITLAB_TIMEZONE: Asia/Seoul
ports:
- '8082:80'
- '2242:22'
volumes:
- '/srv/gitlab/config:/etc/gitlab'
- '/srv/gitlab/logs:/var/log/gitlab'
- '/srv/gitlab/data:/var/opt/gitlab'
- '/srv/gitlab/backup:/var/opt/gitlab/backups' # 백업 폴더 추가
# 컨테이너 안에서 df -h > / shm 부족시 조정함.
shm_size: '256m'
안녕하세요 저도 인스턴스에 docker로 gitlab설치중인데 nginx는 인스턴스에 그냥 설치하는 건가요 아니면 도커로 컨테이너 생성하셨나요!?
저도 이게 두려우서ㅓ ㅠㅠㅠ
성공하실꺼에요 저도 도커로 Kavita랑 자동업데이트만 설정해서 사용중이네요 ㅎㅎ
gitlab 컨테이너에 내장된? nginx를 사용했습니다. external_url의 포트와 외부 접근허용된 포트가 같으면 충돌이 되서인지 접근이 안되었는데
nginx['enable'] = true
nginx['listen_port'] = 80
위의 설정으로 /etc/gitlab/gitlab.rb 에 추가되어 동작 되는 거 같습니다..
cmt alert