diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 5beade3f2d486809a9b514233b444697ed24e2b9..ef920300563e9f953c91e10bbf532d69a5724809 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -83,20 +83,28 @@ tests-3.9: services: - docker:dind script: - - docker pull $CI_REGISTRY_IMAGE:$IMAGE_TAG || true - - docker build --cache-from $CI_REGISTRY_IMAGE:$IMAGE_TAG --pull -t "$CI_REGISTRY_IMAGE:$IMAGE_TAG" -f release/container-pip . + - docker pull $CI_REGISTRY_IMAGE/$KIND:$IMAGE_TAG || true + - docker build --cache-from $CI_REGISTRY_IMAGE/$KIND:$IMAGE_TAG --pull -t "$CI_REGISTRY_IMAGE/$KIND:$IMAGE_TAG" -f release/container-$KIND . - docker login -u "$CI_REGISTRY_USER" -p "$CI_BUILD_TOKEN" $CI_REGISTRY - - docker tag "$CI_REGISTRY_IMAGE:$IMAGE_TAG" "$CI_REGISTRY_IMAGE:$IMAGE_TAG" - - docker push "$CI_REGISTRY_IMAGE:$IMAGE_TAG" - - docker tag "$CI_REGISTRY_IMAGE:$IMAGE_TAG" "$CI_REGISTRY_IMAGE:latest" - - docker push "$CI_REGISTRY_IMAGE:latest" -container: + - docker tag "$CI_REGISTRY_IMAGE/$KIND:$IMAGE_TAG" "$CI_REGISTRY_IMAGE/$KIND:$IMAGE_TAG" + - docker push "$CI_REGISTRY_IMAGE/$KIND:$IMAGE_TAG" + - docker tag "$CI_REGISTRY_IMAGE/$KIND:$IMAGE_TAG" "$CI_REGISTRY_IMAGE/$KIND:latest" + - docker push "$CI_REGISTRY_IMAGE/$KIND:latest" + +container:poetry: extends: .container variables: + KIND: "poetry" IMAGE_TAG: "dev" # rules: # - when: manual +container:pip: + extends: .container + variables: + KIND: "pip" + IMAGE_TAG: "dev" + pypi_test: stage: package rules: diff --git a/release/container-pip b/release/container-pip index 7d6da9f39ac8d72ea39713cd7ef8289dbde3affb..dccbe25395e477ca96772f3a2c9e6498a532f879 100644 --- a/release/container-pip +++ b/release/container-pip @@ -2,7 +2,7 @@ # Build Stage # ------------------------------------------------------------------------------ ARG PYTHON_VERS=3.9 -FROM registry.duniter.org/docker/python3/poetry/${PYTHON_VERS}:latest as build +FROM python:${PYTHON_VERS}-slim-buster AS build WORKDIR /silkaj @@ -15,7 +15,7 @@ RUN pip install . # ------------------------------------------------------------------------------ # Final Stage # ------------------------------------------------------------------------------ -FROM registry.duniter.org/docker/python3/poetry/${PYTHON_VERS}:latest +FROM python:${PYTHON_VERS}-slim-buster ARG PYTHON_VERS=3.9 # Create silkaj group and user @@ -26,6 +26,11 @@ RUN groupadd -g 1111 silkaj && \ COPY --from=build /usr/local/bin/silkaj /usr/local/bin/silkaj COPY --from=build /usr/local/lib/python${PYTHON_VERS}/site-packages/ /usr/local/lib/python${PYTHON_VERS}/site-packages/ +# Install libsodium +RUN apt update && \ + apt install --yes libsodium23 && \ + rm -rf /var/lib/apt/lists + # Use silkaj user USER silkaj WORKDIR /usr/local/lib/python${PYTHON_VERS}/site-packages/silkaj diff --git a/release/container-poetry b/release/container-poetry new file mode 100644 index 0000000000000000000000000000000000000000..08ba73bbbf03d7c6ab35d402d726ebc82ec1277b --- /dev/null +++ b/release/container-poetry @@ -0,0 +1,43 @@ +# ------------------------------------------------------------------------------ +# Build Stage +# ------------------------------------------------------------------------------ +ARG PYTHON_VERS=3.9 +FROM registry.duniter.org/docker/python3/poetry/${PYTHON_VERS}:latest AS build + +WORKDIR /silkaj + +# Copy source tree +COPY ./ ./ + +# Install Silkaj +RUN poetry install --no-dev + +# ------------------------------------------------------------------------------ +# Final Stage +# ------------------------------------------------------------------------------ +FROM registry.duniter.org/docker/python3/poetry/${PYTHON_VERS}:latest +ARG PYTHON_VERS=3.9 + +# Create silkaj group and user +RUN groupadd -g 1111 silkaj && \ + useradd -d /silkaj -g silkaj -u 1111 silkaj + +# Copy the build artifact from the build stage +COPY --from=build --chown=silkaj:silkaj /silkaj /silkaj +COPY --from=build --chown=silkaj:silkaj /root/.cache/pypoetry/virtualenvs /silkaj/.cache/pypoetry/virtualenvs + +# Install git +RUN apt update && \ + apt install --yes git && \ + rm -rf /var/lib/apt/lists + +# Set up alias to directly get silkaj command +# https://stackoverflow.com/a/3638886 +RUN printf '#!/bin/bash\npoetry run silkaj "$@"' > /usr/bin/silkaj && \ + chmod +x /usr/bin/silkaj + +# Use silkaj user +USER silkaj +WORKDIR /silkaj + +CMD ["/usr/bin/silkaj"]