我有一个Dockerfile,我可以从以下位置成功构建图像:
FROM iron/go:dev
RUN mkdir /app
COPY src/main/main.go /app/.
# Set an env var that matches your github repo name, replace treeder/dockergo here with your repo name
ENV SRC_DIR=/app
# Add the source code:
ADD . $SRC_DIR
# Build it:
RUN go get goji.io
RUN go get gopkg.in/mgo.v2
RUN cd $SRC_DIR; go build -o main
ENTRYPOINT ["/app/main"]
但是,当我尝试构建以下docker-compose.yml文件时:
version: "3.3"
services:
api:
build: ./api
expose:
- '8080'
container_name: 'api'
ports:
- "8082:8080"
depends_on:
- db
networks:
- api-net
db:
build: ./db
expose:
- '27017'
container_name: 'mongo'
ports:
- "27017:27017"
networks:
- api-net
networks:
api-net:
driver: bridge
我明白了:
删除api mongo是最新的重新创建
532e3cf66460_carsupermarket_api_1 ...错误
错误:for 532e3cf66460_carsupermarket_api_1无法启动服务 api:OCI运行时创建失败:container_linux.go:348:启动 容器进程导致" exec:\" / GO / src / main \":stat / GO / src / main: 没有这样的文件或目录":未知
错误:对于api无法启动服务api:OCI运行时创建失败: container_linux.go:348:启动容器进程导致" exec: \" / GO / src / main \":stat / GO / src / main:没有这样的文件或目录": 未知错误:启动项目时遇到错误。
我怀疑docker-compose在目录构建路径方面引入了一些细微差别,但是,在使用docker build .
时,我不知道为什么我的图像是从docker文件构建的,但是当我尝试将其纳入docker-compose时失败。
有人能指出我正确的方向吗?
答案 0 :(得分:0)
我已升级到最新版本的Docker CE(18.03.1-ce,build 9ee9f40),这似乎解决了这个问题。