使用docker build构建图像很好,但stat / GO / src / main:没有遇到docker-compose这样的文件或目录

时间:2018-05-04 16:54:43

标签: docker go docker-compose

我有一个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时失败。

有人能指出我正确的方向吗?

1 个答案:

答案 0 :(得分:0)

我已升级到最新版本的Docker CE(18.03.1-ce,build 9ee9f40),这似乎解决了这个问题。