docker-compose up没有建立

时间:2019-02-23 23:00:22

标签: docker go docker-compose

我正在尝试使用docker-compose构建和运行golang应用。 这是我的设置:

./docker/Dockerfile
./main.go
Makefile

Makefile

compose:
        env GOOS=linux GOARCH=amd64 GOARM=7 go build
        cd docker && docker-compose up

./ docker / Dockerfile

FROM golang:1.11

COPY app .
CMD ["./app"]

./ docker / docker-compose.yml

version: '3'
services:
    app:
        build:
            context: ../
            dockerfile: ./docker/Dockerfile
        env_file: ./app.env
        ports:
            - '9292:8000'

我运行以下命令,希望构建一个新的二进制文件并在Docker容器中运行它。

$make compose

它运行得很好,但是如果我在更新main.go之后运行相同的命令,则新的二进制文件不会复制到docker容器中。 docker容器似乎使用了先前的二进制文件(即,首次构造容器时复制的第一个二进制文件)。

有人可以解释为什么会发生这种情况,我应该怎么做才能解决它?

1 个答案:

答案 0 :(得分:1)

关键是要在--build中使用docker-compose up选项。 我希望docker-compose up每次都能重新构建,但是它只是在从以前开始构建和创建容器之后才启动的。