Übergabe von mehrstufigen Dockerfile-Build-Parametern

Übergabe von mehrstufigen Dockerfile-Build-Parametern

Docker-Datei

 
 
ARG SVC1
ARG SVC2

##### BUILD STAGE
FROM mcr.microsoft.com/dotnet/sdk:3.1 AS BUILD
ARG SVC1

WORKDIR /workspace

RUN mkdir ${SVC1}

##### RUN STAGE
FROM mcr.microsoft.com/dotnet/aspnet:3.1
ARG SVC2
ENV SVC2=${SVC2}

COPY --from=BUILD /workspace /workspace

WORKDIR /workspace

RUN mkdir ${SVC2}

  • ARG deklariert die übergebenen Parameter
  • FROM trennt verschiedene Build-Phasen
  • ARGs müssen deklariert werden, bevor sie in verschiedenen Build-Phasen verwendet werden können.

  • COPY --from=BUILDKopieren Sie aus der BUILD-Phase
ARG SVC
FROM mcr.microsoft.com/dotnet/sdk:3.1 AS BUILD
ARG SVC
...
FROM mcr.microsoft.com/dotnet/aspnet:3.1
ARG SVC
...

Docker-Build-Build-Image

docker build -t test --build-arg SVC1="text1" --build-arg SVC2="text2" .

--build-arg KEY="VAL"Übergeben Sie Parameter über

Docker Run startet den Container und betritt die Shell

[root@localhost ~]# docker run -it test /bin/bash

Überprüfen Sie den Behälter, um die Ergebnisse zu sehen

Überprüfen Sie, ob das Verzeichnis erstellt wurde

root@0cc3f0c70904:/workspace# ls

text1 text2            ##### BUILD STAGE & RUN STAGE 创建的东西都在

Überprüfen Sie, ob Umgebungsvariablen erstellt werden

root@0cc3f0c70904:/workspace# env
HOSTNAME=0cc3f0c70904
ASPNETCORE_URLS=http://+:80
PWD=/workspace
HOME=/root
TERM=xterm
SHLVL=1
SVC2=text2							##### 环境变量OK
DOTNET_RUNNING_IN_CONTAINER=true
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
_=/usr/bin/env

おすすめ

転載: blog.csdn.net/yangyangye/article/details/132343403