映射5432端口- '5431:5432'或者从docker客户端查看

version: '3.6'
services:
  web:
    image: 'gitlab/gitlab-ce:latest'
    restart: always
    hostname: 'localhost'
    environment:
      GITLAB_OMNIBUS_CONFIG: |
        external_url 'http://localhost:8929'
        gitlab_rails['gitlab_shell_ssh_port'] = 2224
    ports:
      - '8929:8929'
      - '2224:22'
      - '5431:5432'
    volumes:
      - '/Users/yanlp/workspace/docker/gitlab_latest/config:/etc/gitlab'
      - '/Users/yanlp/workspace/docker/gitlab_latest/logs:/var/log/gitlab'
      - '/Users/yanlp/workspace/docker/gitlab_latest/data:/var/opt/gitlab'
    shm_size: '256m'

主机dbeaver访问gitlab容器中的pg-LMLPHP

登陆容器修改postgresql配置docker exec -it 28e24039b4b6 /bin/bash

  • 配置pg开启外部端口监听

    $ vi /var/opt/gitlab/postgresql/data/postgresql.conf;
    
    #listen_addresses = '' 修改为   
    listen_addresses = '*'    # what IP address(es) to listen on;
    
  • 配置pg白名单

    $ vi /var/opt/gitlab/postgresql/data/pg_hba.conf
    
    # TYPE  DATABASE    USER        CIDR-ADDRESS          METHOD
    
    # 最后一行追加
    # "local" is for Unix domain socket connections only
    local   all         all                               peer map=gitlab
    host    all         all         0.0.0.0/0             trust # 全部允许 最大权限配置
    
  • 重启pg并查看5432端口

    $ gitlab-ctl restart postgresql
    $ netstat -an | grep 5432
    

    主机dbeaver访问gitlab容器中的pg-LMLPHP

  • 查看pg绑定用户名more /etc/passwd
    主机dbeaver访问gitlab容器中的pg-LMLPHP

  • 查看gitlab database配置 more /opt/gitlab/embedded/service/gitlab-rails/config/database.yml或者more /var/opt/gitlab/gitlab-rails/etc/database.yml
    主机dbeaver访问gitlab容器中的pg-LMLPHP

  • 创建新用户并授权(可忽略)

    $ su - gitlab-psql
    $ psql -h /var/opt/gitlab/postgresql -d gitlabhq_production 
    
    CREATE USER gitlab_psql WITH PASSWORD 'test-admin';
    GRANT ALL PRIVILEGES ON DATABASE gitlabhq_production to gitlab_psql;
    GRANT ALL PRIVILEGES ON ALL TABLES IN SCHEMA public TO gitlab_psql;
    

主机dbeaver连接pg

主机dbeaver访问gitlab容器中的pg-LMLPHP

11-23 11:39