'How to add relative paths and how to mount volumes in a container with Podman
I'd like to build a container using Podman which would contains the following:
- a Python application
- the Python modules I developed but which are not stored at the same place than the Python application
- the Python environment (made with miniconda/mambaforge)
- a mounted folder for input data
- a mounted folder for output data
To do that, I've added a Dockerfile in my home directory. I had to put the Dockerfile at a such high path level because it seems that it needs to be above any folder I want to add in the container. Indeed, I've tried to add folders using rising path with "../../some/path/" but it doesn't work. Then, a first question is: Is there a solution to add folders which are not below (in path) the Dockerfile?
Below is the content of the Dockerfile:
FROM python:3
# Add the Python application
ADD /path/to/my_python_app /my_python_app
# Add the Python modules used by the Python application
ADD /path/to/my_modules /my_modules
# Add the whole mambaforge folder (contains the virtual envs) with the exact same path than the local one
ADD /path/to/mambaforge /exact/same/path/to/mambaforge
# Create a customized .bashrc (contains 'export PATH' to add mamba path and 'export PYTHONPATH' to add my_modules path)
ADD Dockerfile_bashrc /root/.bashrc
Then, I build the container with:
podman build -t python_app .
And run it with:
podman run -i -t python_app -v /path/to/input/data:/mnt/input -v /path/to/output/data:/mnt/output /bin/bash
The container runs correctly and I can execute my Python application into. However, the volumes do not appear in /mnt. A second question is: How to mount volumes in a container? I've tried with '--volume' and '--mount', with '/path/to/input/data:/mnt/input:z' and '/path/to/input/data:/mnt/input:Z', but nothing works.
Many thanks for your help!
Sources
This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.
Source: Stack Overflow
| Solution | Source |
|---|
