远程PC无法通过Traefik代理的GitLab执行git clone问题
无法从远程PC克隆Traefik代理后的GitLab仓库
我遇到了GitLab仓库克隆的问题:
- 能正常访问GitLab的Web界面;
- 在
rudak_traefik_network网络的容器内、Docker服务器本机上都可以顺利执行git clone操作,但远程PC无法完成; - Traefik仪表盘显示所有路由状态正常,包括针对
gitlab.roger的TCP路由HostSNI(gitlab.roger); - 已经在GitLab中配置好远程PC的SSH密钥,且该密钥在容器内可以正常使用,但在远程PC执行
git clone git@gitlab.roger:roger/test-project.git时,终端会提示输入密码,输出如下:
git clone git@gitlab.roger:roger/test-project.git Cloning into 'test-project'... git@gitlab.roger's password:
(服务器名为roger,我认为这不是问题)
以下是我的GitLab和Traefik配置:
GitLab Docker Compose配置
version: '3.7' services: gitlab_web: image: 'gitlab/gitlab-ce:latest' restart: always hostname: 'gitlab.roger' container_name: gitlab-ce environment: GITLAB_OMNIBUS_CONFIG: | external_url 'http://gitlab.roger' labels: - "traefik.enable=true" - "traefik.http.routers.gitlab_local.rule=Host(`gitlab.roger`)" - "traefik.http.routers.gitlab_roger.entrypoints=web" - "traefik.http.services.gitlab_roger.loadbalancer.server.port=80" - "traefik.tcp.routers.gitlab-ssh-roger.rule=HostSNI(`gitlab.roger`)" - "traefik.tcp.routers.gitlab-ssh-roger.entrypoints=ssh" - "traefik.tcp.routers.gitlab-ssh-roger.service=gitlab-ssh-roger" - "traefik.tcp.services.gitlab-ssh-roger.loadbalancer.server.port=22" volumes: - '$GITLAB_HOME/config:/etc/gitlab' - '$GITLAB_HOME/logs:/var/log/gitlab' - '$GITLAB_HOME/data:/var/opt/gitlab' networks: - rudak_traefik_network gitlab-runner: image: gitlab/gitlab-runner:alpine restart: always depends_on: - gitlab_web volumes: - /var/run/docker.sock:/var/run/docker.sock - ./runner.toml:/etc/gitlab-runner/config.toml networks: - rudak_traefik_network networks: rudak_traefik_network: external: true
Traefik Docker Compose配置
version: "3.7" services: traefik: image: "traefik:v2.3" command: - "--configfile=/etc/traefik/traefik_static.yaml" ports: - "22:22" - "80:80" - "8080:8080" volumes: - "/var/run/docker.sock:/var/run/docker.sock:ro" - "./traefik_static.yaml:/etc/traefik/traefik_static.yaml:ro" - "./dynamic_conf.yaml:/etc/traefik/dynamic_conf.yaml:ro" networks: - rudak_traefik_network networks: rudak_traefik_network: external: true
traefik_static.yaml配置
api: dashboard: true insecure: true entryPoints: web: address: ":80" websecure: address: ":443" ssh: address: ":22" providers: docker: endpoint: "unix:///var/run/docker.sock" exposedByDefault: false file: filename: "/etc/traefik/dynamic_conf.yaml"
内容的提问来源于stack exchange,提问作者rudak
相关产品推荐
相关产品推荐

