Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Cannot make request to gitlab running in the official Docker container

Tags:

docker

gitlab

I am trying to run gitlab from a Docker (gitlab/gitlab-ce, latest) container using the instruction given here.

Docker version

Docker version 1.12.4, build 1564f02

I first run

docker run --detach --hostname <myIP> --publish 8000:443--publish 8001:80 --publish 8002:22 --name gitlab --restart always --volume /docker/app/gitlab/config:/etc/gitlab --volume /docker/app/gitlab/logs:/var/log/gitlab --volume /docker/app/gitlab/data:/var/opt/gitlab gitlab/gitlab-ce:latest

Then I edited the container's /etc/gitlab/gitlab.rb to set

external_url 'http://<myIP>:8001'
gitlab_rails['gitlab_shell_ssh_port'] = 8002

Then I restarted the container with

docker restart gitlab

Now.

When I try to connect to <myIP>:8001 I get a (110) Connection timed out.

When I try from the Docker container's host I get

xxx@xxx:~$ curl localhost:8001
curl: (56) Recv failure: Connection reset by peer

Logs (just the end)

==> /var/log/gitlab/gitlab-workhorse/current <==
2017-07-26_14:53:41.50465 localhost:8001 @ - - [2017-07-26 14:53:41.223110228 +0000 UTC] "GET /help HTTP/1.1" 200 33923 "" "curl/7.53.0" 0.281484

==> /var/log/gitlab/nginx/gitlab_access.log <==
127.0.0.1 - - [26/Jul/2017:14:53:41 +0000] "GET /help HTTP/1.1" 200 33967 "-" "curl/7.53.0"

==> /var/log/gitlab/gitlab-monitor/current <==
2017-07-26_14:53:47.27460 ::1 - - [26/Jul/2017:14:53:47 UTC] "GET /sidekiq HTTP/1.1" 200 3399
2017-07-26_14:53:47.27464 - -> /sidekiq
2017-07-26_14:53:49.22004 ::1 - - [26/Jul/2017:14:53:49 UTC] "GET /database HTTP/1.1" 200 42025
2017-07-26_14:53:49.22007 - -> /database
2017-07-26_14:53:51.48866 ::1 - - [26/Jul/2017:14:53:51 UTC] "GET /process HTTP/1.1" 200 7132
2017-07-26_14:53:51.48873 - -> /process

==> /var/log/gitlab/gitlab-rails/production.log <==
Started GET "/-/metrics" for 127.0.0.1 at 2017-07-26 14:53:55 +0000
Processing by MetricsController#index as HTML
Filter chain halted as :validate_prometheus_metrics rendered or redirected
Completed 404 Not Found in 1ms (Views: 0.7ms | ActiveRecord: 0.0ms)

Docker ps

xxx@xxx:~$ docker ps
CONTAINER ID        IMAGE                     COMMAND                  CREATED             STATUS                       PORTS                                                               NAMES
67e013741b6d        gitlab/gitlab-ce:latest   "/assets/wrapper"        2 hours ago         Up About an hour (healthy)   0.0.0.0:8002->22/tcp, 0.0.0.0:8001->80/tcp, 0.0.0.0:8000->443/tcp   gitlab

Netstat

xxx@xxx:~$ netstat --listen
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State      
tcp        0      0 localhost:smtp          *:*                     LISTEN     
tcp        0      0 *:2020                  *:*                     LISTEN     
tcp        0      0 *:git                   *:*                     LISTEN     
tcp        0      0 *:43918                 *:*                     LISTEN     
tcp        0      0 *:sunrpc                *:*                     LISTEN     
tcp6       0      0 localhost:smtp          [::]:*                  LISTEN     
tcp6       0      0 [::]:8000               [::]:*                  LISTEN     
tcp6       0      0 [::]:8001               [::]:*                  LISTEN     
tcp6       0      0 [::]:8002               [::]:*                  LISTEN     
tcp6       0      0 [::]:2020               [::]:*                  LISTEN     
tcp6       0      0 [::]:git                [::]:*                  LISTEN     
tcp6       0      0 [::]:sunrpc             [::]:*                  LISTEN     
tcp6       0      0 [::]:http               [::]:*                  LISTEN     
tcp6       0      0 [::]:43730              [::]:*                  LISTEN     
udp        0      0 *:54041                 *:*                                
udp        0      0 *:sunrpc                *:*                                
udp        0      0 *:snmp                  *:*                                
udp        0      0 *:958                   *:*                                
udp        0      0 localhost:969           *:*                                
udp        0      0 *:37620                 *:*                                
udp6       0      0 [::]:54611              [::]:*                             
udp6       0      0 [::]:sunrpc             [::]:*                             
udp6       0      0 localhost:snmp          [::]:*                             
udp6       0      0 [::]:958                [::]:* 

I cannot find what is wrong. Anybody can help ?

like image 428
jul Avatar asked Sep 13 '25 12:09

jul


1 Answers

Here is a docker-compose.yml which worked fine for me

version: '2'
services:
  gitlab:
    image: gitlab/gitlab-ce:latest
    ports:
      - "8002:22"
      - "8000:8000"
      - "8001:443"
    environment:
      - "GITLAB_OMNIBUS_CONFIG=external_url 'http://192.168.33.100:8000/'"
    volumes:
      - ./config:/etc/gitlab
      - ./logs:/var/log/gitlab
      - ./data:/var/opt/gitlab

The thing is that when you configure external url as <MyIP>:8000 the listening port inside the container also is updated to 8000. In your case you are mapping port 8000 to 80 and you should be mapping 8000 to 8000 only

Read the below url for details on the same

https://docs.gitlab.com/omnibus/settings/nginx.html#setting-the-nginx-listen-port

If you need to override this port then you can do that in gitlab.rb

nginx['listen_port'] = 8081

I prefer to launch Gitlab using a docker-compose file instead of commands, as it is easy to configure, start, restart gitlab

like image 200
Tarun Lalwani Avatar answered Sep 16 '25 09:09

Tarun Lalwani