Présentation de Docker
Tim Sangster
Software Engineer @ DataCamp
Créer des variables dans un fichier Dockerfile
ARG <var_name>=<var_value>
Par exemple ARG path=/home/repl
À utiliser dans le fichier Dockerfile
$path
Par exemple COPY /local/path $path
Définition de la version Python
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
Configuration d'un dossier
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
Définition d'une variable dans la commande build
docker build --build-arg project_folder=/repl/pipeline .
ARG est écrasé et les fichiers sont enregistrés dans :
COPY /local/project/files /repl/pipeline
COPY /local/project/test_files /repl/pipeline/tests
Créer des variables dans un fichier Dockerfile
ENV <var_name>=<var_value>
Par exemple ENV DB_USER=pipeline_user
À utiliser dans le fichier Dockerfile ou lors de l'exécution
$DB_USER
Par exemple CMD psql -U $DB_USER
Définition d'un répertoire à utiliser lors de l'exécution
ENV DATA_DIR=/usr/local/var/postgres
ENV MODE production
Définition ou remplacement d'une variable lors de l'exécution
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
S’affichera dans docker history :
IMAGE CREATED CREATED BY SIZE ...
cd338027297f 2 months ago ARG DB_PASSWORD=example_password 0B ...
| Utilisation | Instruction Dockerfile |
|---|---|
| Créer une variable accessible uniquement pendant la compilation | ARG <name>=<value> |
| Créer une variable | ENV <name>=<value> |
| Utilisation | Commande shell |
|---|---|
| Remplacer un ARG dans la build Docker | docker build --build-arg <name>=<value> |
| Remplacer un ENV dans docker run | docker run --env <name>=<value> <image-name> |
| Consulter les instructions utilisées pour créer une image | docker history <image-name> |
Présentation de Docker