mirror of
https://github.com/d9pouces/id_configurator.git
synced 2026-11-09 01:47:21 +01:00
feat: add Python-alpine Dockerfile for enhanced build process and testing with id-configurator
Signed-off-by: d9pouces <github@19pouces.net>
This commit is contained in:
@@ -0,0 +1,24 @@
|
||||
FROM python:3.13-alpine AS target
|
||||
FROM interdiode/id-configurator:latest AS configuration
|
||||
COPY --from=target / /src/
|
||||
COPY --from=generated-config Python.yaml /config.yaml
|
||||
RUN id-configurator apply --config /config.yaml --src /src --dst /dst
|
||||
FROM target AS runtime
|
||||
ARG PYPI_REPO_PORT
|
||||
# Warm up uv and poetry themselves from the real, network-reachable PyPI
|
||||
# while the default index is still in place, so the actual tests below
|
||||
# never need anything but the fixture repository configured by
|
||||
# id-configurator. (easy_install/distutils, the fourth tool the `python`
|
||||
# module configures, is not exercised here: both were removed from Python
|
||||
# itself in 3.12, and setuptools no longer ships easy_install either, so
|
||||
# there is no way to actually invoke it on a current interpreter.)
|
||||
RUN pip install --no-cache-dir uv poetry
|
||||
COPY --from=configuration /dst/ /
|
||||
RUN pip install --no-cache-dir idconfiguratortestpkg \
|
||||
&& python3 -c "import idconfiguratortestpkg"
|
||||
RUN uv pip install --system idconfiguratortestpkg \
|
||||
&& python3 -c "import idconfiguratortestpkg"
|
||||
RUN mkdir -p /tmp/poetrytest && cd /tmp/poetrytest \
|
||||
&& poetry init -n --name poetrytest \
|
||||
&& poetry source add --priority explicit demo "https://host.docker.internal:${PYPI_REPO_PORT}/simple/" \
|
||||
&& poetry add idconfiguratortestpkg --source demo
|
||||
@@ -78,7 +78,10 @@ allowlist_externals =
|
||||
docker
|
||||
commands =
|
||||
python3 -m id_tools test render-config {tox_root}/tests/configs/Python.yaml.j2 {env_dir}/configs/Python.yaml
|
||||
docker buildx build --platform linux/amd64 --add-host=host.docker.internal:host-gateway --build-arg PYPI_REPO_PORT={env:PYPI_REPO_PORT} --build-context generated-config={env_dir}/configs -f {tox_root}/tests/dockerfiles/Python-alpine.Dockerfile -t id-configurator-python .
|
||||
docker rmi id-configurator-python
|
||||
docker buildx build --platform linux/amd64 --add-host=host.docker.internal:host-gateway --build-arg PYPI_REPO_PORT={env:PYPI_REPO_PORT} --build-context generated-config={env_dir}/configs -f {tox_root}/tests/dockerfiles/Python.Dockerfile -t id-configurator-python .
|
||||
docker rmi id-configurator-python
|
||||
|
||||
[docker:apt-repo]
|
||||
dockerfile = {tox_root}/tests/dockerfiles/repos/apt-repo.Dockerfile
|
||||
@@ -101,6 +104,7 @@ allowlist_externals =
|
||||
commands =
|
||||
python3 -m id_tools test render-config {tox_root}/tests/configs/Apt.yaml.j2 {env_dir}/configs/Apt.yaml
|
||||
docker buildx build --platform linux/amd64 --add-host=host.docker.internal:host-gateway --build-context generated-config={env_dir}/configs -f {tox_root}/tests/dockerfiles/Apt.Dockerfile -t id-configurator-apt .
|
||||
docker rmi id-configurator-apt
|
||||
|
||||
[docker:yum-repo]
|
||||
dockerfile = {tox_root}/tests/dockerfiles/repos/yum-repo.Dockerfile
|
||||
@@ -123,6 +127,7 @@ allowlist_externals =
|
||||
commands =
|
||||
python3 -m id_tools test render-config {tox_root}/tests/configs/Yum.yaml.j2 {env_dir}/configs/Yum.yaml
|
||||
docker buildx build --platform linux/amd64 --add-host=host.docker.internal:host-gateway --build-context generated-config={env_dir}/configs -f {tox_root}/tests/dockerfiles/Yum.Dockerfile -t id-configurator-yum .
|
||||
docker rmi id-configurator-yum
|
||||
|
||||
[docker:apk-repo]
|
||||
dockerfile = {tox_root}/tests/dockerfiles/repos/apk-repo.Dockerfile
|
||||
@@ -154,6 +159,7 @@ description =
|
||||
commands =
|
||||
python3 -m id_tools test render-config {tox_root}/tests/configs/Apk.yaml.j2 {env_dir}/configs/Apk.yaml
|
||||
docker buildx build --add-host=host.docker.internal:host-gateway --build-context generated-config={env_dir}/configs -f {tox_root}/tests/dockerfiles/Apk.Dockerfile -t id-configurator-apk .
|
||||
docker rmi id-configurator-apk
|
||||
|
||||
[docker:java-repo]
|
||||
dockerfile = {tox_root}/tests/dockerfiles/repos/java-repo.Dockerfile
|
||||
@@ -176,6 +182,7 @@ allowlist_externals =
|
||||
commands =
|
||||
python3 -m id_tools test render-config {tox_root}/tests/configs/Java.yaml.j2 {env_dir}/configs/Java.yaml
|
||||
docker buildx build --platform linux/amd64 --add-host=host.docker.internal:host-gateway --build-context generated-config={env_dir}/configs -f {tox_root}/tests/dockerfiles/Java.Dockerfile -t id-configurator-java .
|
||||
docker rmi id-configurator-java
|
||||
|
||||
[docker:certificate-repo]
|
||||
dockerfile = {tox_root}/tests/dockerfiles/repos/certificate-repo.Dockerfile
|
||||
@@ -203,3 +210,4 @@ description =
|
||||
commands =
|
||||
python3 -m id_tools test render-config {tox_root}/tests/configs/Certificate.yaml.j2 {env_dir}/configs/Certificate.yaml
|
||||
docker buildx build --platform linux/amd64 --add-host=host.docker.internal:host-gateway --build-arg CERTIFICATE_REPO_PORT={env:CERTIFICATE_REPO_PORT} --build-context generated-config={env_dir}/configs -f {tox_root}/tests/dockerfiles/Certificate.Dockerfile -t id-configurator-certificates .
|
||||
docker rmi id-configurator-certificates
|
||||
|
||||
Reference in New Issue
Block a user