我正在try 使用3个容器运行docker-compose设置:golang app(api)、postquist和nginx.
我为golang创建了docker-compose文件和Dockerfile.
我try 了不同的方法,但仍然有一个错误"来 automorphic 护程序的错误响应:未能创建shim任务:OCI运行时创建失败:runc创建失败:无法启动容器进程:exec:"./ main":stat./ main:没有这样的文件或目录:未知"来自Dockerfile.一些RUN go build -o main .
如何在不同的位置创建垃圾箱.
这是位于我项目根目录下的docker-compose文件:
version: '3.8'
services:
apigateway:
build:
context: .
dockerfile: .docker/go/Dockerfile
ports:
- "8080:8080"
volumes:
- ./apigateway:/apigateway
depends_on:
- postgres
networks:
- app-network
nginx:
image: nginx:1.26.0
ports:
- "80:80"
volumes:
- ./.docker/nginx/conf.d:/etc/nginx/conf.d
depends_on:
- apigateway
networks:
- app-network
postgres:
image: postgres:16.2
ports:
- "5210:5432"
environment:
POSTGRES_USER: user
POSTGRES_PASSWORD: password
POSTGRES_DB: mydb
volumes:
- postgres_data:/var/lib/postgresql/data
networks:
- app-network
volumes:
postgres_data:
networks:
app-network:
Dockerfile位于.docker/go/Dockerfile
中,它包含:
FROM golang:1.22-alpine
RUN apk update && apk upgrade && \
apk add --no-cache bash openssh
WORKDIR /apigateway
COPY ./apigateway/go.mod ./apigateway/go.sum ./
RUN go mod download
COPY ./apigateway .
RUN go build -o main .
EXPOSE 8080
CMD ["./main"]
我们非常感谢任何帮助.
我试图创建bin并复制它以执行,但它不起作用,因为bin是在macos中构建的,无法在Linux中执行. 我也在Dockerfile中玩了很多次路径,但没有取得任何成功