用于dav和prod的单独Dockerfile

时间:2019-04-01 14:19:30

标签: docker

我是Docker的新手,请不要怪我:)

有没有一种方法可以创建两个继承自一个的Dockerfile? 例如,我们必须有2个环境:开发和生产。他们的基础是相同的:

$sp_appid = (Get-AzureRmADServicePrincipal -DisplayName $spDisplayName).ApplicationId.Guid
$sp_secret = (Get-AzureKeyVaultSecret -VaultName $kvName -Name $appKeySecretName).SecretValueText
az login --service-principal --username $sp_appid --password $sp_secret --tenant $tenant_Id

对于“开发”,我必须安装一些实用程序,例如gdb,valgrind等。 对于“生产”,我必须构建一个应用程序。它曾考虑使用“多阶段构建”,但是它在Dockerfile中始终运行步骤。如果我不想在“开发”中构建应用程序该怎么办?

首先构建基础图像:

Contributor

然后为每个Dockerfile使用它?

FROM gcc
# it's just an example which shows the same base packets for both environment
RUN apt install lib-boost
build -t base_image .

1 个答案:

答案 0 :(得分:0)

这是我当前正在使用的示例。

基本映像Dockerfile:

FROM python:3.6-slim as base

RUN apt update
RUN apt install --no-install-recommends -y git-core build-essential \
 && apt autoclean
# ...

产品映像Dockerfile:

FROM your-registry/base:0.0.0 as prod

# your code
# ...

希望,对您有帮助。