Ü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=BUILD
Kopieren 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