Docker的新手以及看似简单的问题并不起作用。我想在dockerfile中构建一个二进制文件,并在docker-compose
中执行二进制文件。
Dockerfile:
FROM golang:1.10
ENV DIR=/go/src/api
RUN go get github.com/Masterminds/glide
WORKDIR $DIR
ADD glide.yaml glide.yaml
ADD glide.lock glide.lock
RUN glide install
COPY . $DIR
RUN CGO_ENABLED=0 GOOS=linux go build -o main .
CMD main
在我的docker-compose.yml
我有这个:
version: '2'
services:
api:
build:
context: ./api
dockerfile: Dockerfile
ports:
- 8000:8000
但是,从docker-compose运行时,没有main
可执行文件。我实际上已经在docker-compose文件中添加了command: ls
,但它并不存在。然后,我在Dockerfile映像中添加了ls
,并且main
就在那里。
如何防止main
在翻译中丢失?