码头工人如何将参数传递给FROM子句?

时间:2019-09-11 03:43:21

标签: docker docker-compose

我有一个包含以下内容的Dockerfile:

ServletContext

我希望用户可以像这样在自己的Dockerfile / docker-compose.yml中指定该参数

# myimage
ARG NODE_VERSION=10
FROM node:${NODE_VERSION}
...

似乎这种方法不起作用

1 个答案:

答案 0 :(得分:1)

可以使用ARG通过带有变量及其值的--build-arg标志直接传递到ENV中来设置映像构建期间的默认Docker环境变量。

最佳做法是创建映像并按如下所示运行隔离的容器。

创建一个Dockerfile

ARG NODE_VERSION=default_value
FROM node:${NODE_VERSION}
.....
.....
ENV NODE_VERSION=$NODE_VERSION
....
...
  • 使用docker build --build-arg NODE_VERSION=12 -t platform-ops .
  • 构建图像
  • 使用docker-compose.yml运行platform-ops图片

创建一个docker-compose.yml

version: '3'
services:
  web:
    image: platform-ops
    .....
    ....

运行docker-compose up -d