Docker:本地主机:8080 没有响应

我正在运行一个码头工人:


docker run -p 8080:8080 -t admin

没有localhost:8080响应,但我运行了go run admin/main.goI can reachlocalhost:8080我知道关于这个问题有很多问题,我调查了一切:


使用正确的端口:8080:8080


在我的本地计算机上运行时,我能够访问服务器:检查服务器是否提供正确的端口。


这是我的 Dockerfile - 公开正确的端口 8080:


FROM --platform=linux/amd64 golang:1.19.3-bullseye


# Install grpc

RUN go install google.golang.org/grpc/cmd/protoc-gen-go-grpc@v1.2 && \

    go install google.golang.org/protobuf/cmd/protoc-gen-go@v1.28


WORKDIR /app

COPY . .

# Install protoc and zip system library

RUN apt-get update && apt-get install -y zip && apt-get install -y tree && \

    mkdir /opt/protoc && cd /opt/protoc && wget https://github.com/protocolbuffers/protobuf/releases/download/v3.7.0/protoc-3.7.0-linux-x86_64.zip && \

    unzip protoc-3.7.0-linux-x86_64.zip


# Copy the grpc proto file and generate the go module

# RUN /opt/protoc/bin/protoc --proto_path=/app --go_out=/app --go_opt=paths=source_relative --go-grpc_out=/app --go-grpc_opt=paths=source_relative /app/proto/textbear.proto /app/proto/server.proto

RUN /opt/protoc/bin/protoc --go_out=. --go_opt=paths=source_relative --go-grpc_out=. --go-grpc_opt=paths=source_relative proto/textbear.proto db/proto/db.proto server/proto/server.proto

RUN go mod download

EXPOSE 8080

RUN go build -o /admin admin/main.go

ENTRYPOINT ["/admin"]

我可能遗漏了一些明显的东西。


慕运维8079593
浏览 79回答 1
1回答

繁花不似锦

我的管理容器依赖于数据库容器网络。我的管理容器正在使用该localhost地址并导致管理容器卡住等待连接到数据库容器。我通过将地址从 更改为localhost来修复db,因为 docker compose 将为所有图像生成主机,管理员可以使用主机db名与数据库通信。这是我的 Dockerfile:version: '3'services:  admin:    image: admin    ports:      - "8080:8080"  db:    image: db    ports:      - "50052:50052"  server:    image: server    ports:      - "50051:50051"
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Go