Einführung in Docker
Tim Sangster
Software Engineer @ DataCamp
Variablen in einem Dockerfile erstellen
ARG <var_name>=<var_value>
Zum Beispiel:ARG path=/home/repl
Zur Verwendung im Dockerfile
$path
Zum Beispiel:COPY /local/path $path
Die Python-Version festlegen
FROM ubuntu
ARG python_version=3.9.7-1+bionic1
RUN apt-get install python3=$python_version
RUN apt-get install python3-dev=$python_version
Einen Ordner konfigurieren
FROM ubuntu
ARG project_folder=/projects/pipeline_v3
COPY /local/project/files $project_folder
COPY /local/project/test_files $project_folder/tests
FROM ubuntu
ARG project_folder=/projects/pipeline_v3
COPY /local/project/files $project_folder
COPY /local/project/test_files $project_folder/tests
Eine Variable im Build-Befehl festlegen
docker build --build-arg project_folder=/repl/pipeline .
ARG wird überschrieben, und die Dateien landen in:
COPY /local/project/files /repl/pipeline
COPY /local/project/test_files /repl/pipeline/tests
Variablen in einem Dockerfile erstellen
ENV <var_name>=<var_value>
Zum Beispiel:ENV DB_USER=pipeline_user
Zur Verwendung im Dockerfile oder zur Laufzeit
$DB_USER
Zum Beispiel:CMD psql -U $DB_USER
Ein Verzeichnis festlegen, das zur Laufzeit benutzt werden soll
ENV DATA_DIR=/usr/local/var/postgres
ENV MODE production
Eine Variable zur Laufzeit festlegen oder ersetzen
docker run --env <key>=<value> <image-name>
docker run --env POSTGRES_USER=test_db --env POSTGRES_PASSWORD=test_db postgres
docker history <image-name>
ARG DB_PASSWORD=example_password
Wird angezeigt in docker history:
IMAGE CREATED CREATED BY SIZE ...
cd338027297f 2 months ago ARG DB_PASSWORD=example_password 0B ...
| Verwendung | Dockerfile-Anweisung |
|---|---|
| Variable erstellen, auf die nur während des Builds zugegriffen werden kann | ARG <name>=<value> |
| Variable erstellen | ENV <name>=<value> |
| Verwendung | Shell-Befehl |
|---|---|
| ARG bei Docker-Build überschreiben | docker build --build-arg <name>=<value> |
| ENV bei Docker-Run überschreiben | docker run --env <name>=<value> <image-name> |
| Anweisungen zum Erstellen eines Images ansehen. | docker history <image-name> |
Einführung in Docker