容器运行后立即退出

时间:2018-11-18 20:18:04

标签: docker docker-compose

docker-compose.yaml:

web:
  build: .
  command: ./main
  ports:
   - "8888:3412"
  volumes:
   - .:/code
  links:
   - redis
redis:
  image: redis

Dockerfile:

FROM golang:1.6
ADD main.go .
EXPOSE 3412
ENTRYPOINT /go
RUN go build main.go

因此,在运行docker run -d imagename之后,没有运行中的容器

docker logs containername也不显示任何内容

1 个答案:

答案 0 :(得分:0)

ENTRYPOINT /go

等同于运行/bin/sh -c /go

go实际上是您容器中的目录,因此它将失败,因为shell无法执行目录。

删除背景标记-d并使用docker run imagename,您将看到此错误

您可能想要的是: ENTRYPOINT /usr/local/go/bin/go可以将go用作容器中的可执行文件。

甚至更好:

ENTRYPOINT ["/usr/local/go/bin/go"],因此您可以传递参数。