我正在运行一个码头工人:
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"]
我可能遗漏了一些明显的东西。
繁花不似锦
相关分类