[SOLVED] Dynamically get/set dockerfile variables

Issue

This Content is from Stack Overflow. Question asked by asafal

I’m trying to create dockerfile similar to the following one:

FROM python:3.8-slim-buster
ENV FOO=bar
RUN python my_python_file.py  # use the FOO variable, and set PY_VERSION variable

FROM python:<PY_VERSION>-slim-buster
# continue dockerfile...
  1. How can I use the FOO variable from within my python my_python_file script?
    (I think I can pass FOO as an argument to the RUN python my_python_file.py command, and read the argument from within the my_python_file.py file. I wonder if there’s an easier way, something that maybe using os.getenv('FOO'))
  2. How can I set PY_VERSION from within my python my_python_file script, to later be used by the 2nd FROM command – FROM python:<PY_VERSION>-slim-buster?

I dont have any control over how the docker build command is being executed.



Solution

How can I use the FOO variable from within my python my_python_file script?

Read it from environment variables.

omething that maybe using os.getenv(‘FOO’))

How do I access environment variables in Python?

How can I set PY_VERSION from within my python my_python_file script, to later be used by the 2nd FROM command – FROM python:<PY_VERSION>-slim-buster?

That is not possible.

Dynamically get/set dockerfile variables

Generate the Dockerfile file from a wrapper script.


This Question was asked in StackOverflow by asafal and Answered by KamilCuk It is licensed under the terms of CC BY-SA 2.5. - CC BY-SA 3.0. - CC BY-SA 4.0.

people found this article helpful. What about you?