docker - 为开发和生产环境构建容器

标签 docker docker-compose dockerfile docker-machine

如何为开发和生产(大量)构建镜像:

我试图为两者都使用一个Dockerfile以将“Dockerfile实现放在一个地方”,例如继承:

FROM golang AS gobase
ENV APP_ENV "pro"
COPY ./app /go/src/github.com/user/myProject/app
WORKDIR /go/src/github.com/user/myProject/app

RUN go get ./
RUN go build
EXPOSE 8080

FROM gobase AS godev

ENV APP_ENV "dev"

RUN go get github.com/pilu/fresh
RUN go-wrapper download
RUN go-wrapper install

CMD [ "fresh" ]

然后使用docker-compose.dev.ymldocker-compose.pro.yml
像docker-compose.dev.yml一样:
version: '2'

services:
  godev:
    environment:
      - APP_ENV="dev"
    image: godev

因此,首先,命名不起作用。

额外的问题:如何构建用于生产的镜像-您是否仅在一个容器中进行编译( docker 运行),然后将二进制文件复制到新容器中?

最佳答案

不要将dev用作名称,而应将其用作标签:

go:dev
go:prod

和您的compose.yml:
services:
  go:
    image: go:dev

奖励:在“Edit 29/06/17”下查看this answer,并将此构建步骤同时用于(dev和prod)

关于docker - 为开发和生产环境构建容器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47633604/

相关文章:

docker - Docker添加失败,没有这样的文件或目录

postgresql - Docker compose 和 postgres 官方镜像环境变量

linux - 如何离线安装docker-compose?

docker - 在 docker 容器内使用 systemctl 启动 ssh

ruby-on-rails - 如何从目录外执行 docker compose?

docker - 在 Docker 容器中启动 Windows 服务

docker - 从Dockerfile启动不同的容器

docker - Github : Building a docker image in a repository with multiple Dockerfile

docker - 在拉取之前获取 Docker 镜像的大小?

docker - 如何显示图像 docker 的 docker 文件