考虑以下设置:
devcontainer.json
{
"name": "Deputy devcontainer",
"dockerComposeFile": "docker-compose.yml",
"service": "go-development",
"settings": {
"go.toolsManagement.checkForUpdates": "local",
"go.useLanguageServer": true,
"go.gopath": "/go"
},
"extensions": [
"golang.Go",
"gitlab.gitlab-workflow",
"GitHub.copilot",
"eamodio.gitlens",
"zxh404.vscode-proto3",
"bungcip.better-toml"
],
"workspaceFolder": "/workspace",
"remoteUser": "vscode"
}docker-compose.yml
version: '3'
services:
go-development:
image: my-custom-docker-repository/go-development:latest
command: /bin/sh -c "while sleep 1000; do :; done"
volumes:
- ..:/workspace:cached
- ./deputy-cli-configuration.toml:/home/vscode/.deputy/configuration.toml
user: vscode
deputy-package-server:
image: my-custom-docker-repository/deputy-package-server:latest
ports:
- "8080:8080"
volumes:
- ./deputy-packages:/var/opt/deputy/deputy-package-server/package
- ./deputy-repository:/var/opt/deputy/deputy-package-server/repository
environment:
- RUST_LOG=debug
index-repository:
image: my-custom-docker-repository/deputy-repository-server
volumes:
- ./deputy-repository/.git:/srv/git/index.git
ports:
- "8082:80"Dockerfile for index-repository
FROM teamfruit/nginx-fcgiwrap
RUN apt-get update && apt-get upgrade -y
RUN apt-get install git-core fcgiwrap -y
COPY nginx.conf /etc/nginx/conf.d/default.confnginx.conf in index-repository
server {
listen 80;
location ~ /git(/.*) {
client_max_body_size 0;
fastcgi_param SCRIPT_FILENAME /usr/lib/git-core/git-http-backend;
include fastcgi_params;
fastcgi_param GIT_HTTP_EXPORT_ALL "";
fastcgi_param GIT_PROJECT_ROOT /srv/git;
fastcgi_param PATH_INFO $1;
fastcgi_pass unix:/var/run/fcgiwrap.socket;
}
}Dockerfile for go-development
FROM vscode/devcontainers/go
RUN apt-get update && apt-get upgrade -y
RUN apt-get install protobuf-compiler make debhelper dpkg-dev -y
RUN go install google.golang.org/grpc/cmd/protoc-gen-go-grpc@v1.2
RUN go install google.golang.org/protobuf/cmd/protoc-gen-go@v1.28
RUN chmod 777 -R /go/pkg当运行vscode-devcontainer时,git clone http://index-repository/git/index.git是不可能的,这在connection refused中失败。

但是,当我试图直接在index-repository或主机中克隆时,这些命令就会成功。此外,连接到deputy-package-server (一个简单的锈菌网络服务器)工作,没有任何问题。

我还可以从tcpdump中看到请求实际上到达了nginx-container

我还使用dig来验证dns不是问题。

到目前为止,我真的很困惑为什么这种联系总是被拒绝。我怀疑这个问题可能存在于nginx配置的某个地方,但无法说明在哪里。我做错了什么?
发布于 2022-07-15 08:15:53
您正在映射端口"8082:80",因此您应该通过http://index-repository:8082的http://localhost:8082 isntead访问index-repository容器。
如果您想通过域名index-repository访问存储库服务器容器,您应该公开存储库服务器容器的端口80 (主机名将与服务id一样默认在码头网络中,例如。index-repository)。
然后,dev容器可以以http://index-repository:80的形式访问它。
https://stackoverflow.com/questions/72976792
复制相似问题