158 lines
2.6 KiB
Docker
158 lines
2.6 KiB
Docker
# This is a multi-stage build which requires Docker 17.05 or higher
|
|
FROM docker.io/alpine:edge as molecule-builder
|
|
|
|
WORKDIR /usr/src/molecule
|
|
|
|
# WARNING: Reasons not to add edge/testing:
|
|
# * Breaks security scanning due to https://github.com/quay/clair/issues/901
|
|
# * Unreliable builds, as alpinelinux CDN is unreliable for edge, returning 404
|
|
# quite often.
|
|
# edge/testing needed for: py3-arrow
|
|
RUN apk add -v --progress --update --no-cache \
|
|
docker-py \
|
|
gcc \
|
|
git \
|
|
libffi-dev \
|
|
libvirt \
|
|
libvirt-dev \
|
|
make \
|
|
musl-dev \
|
|
openssl-dev \
|
|
py3-bcrypt \
|
|
py3-botocore \
|
|
py3-certifi \
|
|
py3-cffi \
|
|
py3-chardet \
|
|
py3-click \
|
|
py3-colorama \
|
|
py3-cryptography \
|
|
py3-distlib \
|
|
py3-docutils \
|
|
py3-flake8 \
|
|
py3-future \
|
|
py3-idna \
|
|
py3-jinja2 \
|
|
py3-libvirt \
|
|
py3-markupsafe \
|
|
py3-mccabe \
|
|
py3-netifaces \
|
|
py3-paramiko \
|
|
py3-pbr \
|
|
py3-pip \
|
|
py3-pluggy \
|
|
py3-psutil \
|
|
py3-ptyprocess \
|
|
py3-py \
|
|
py3-pycodestyle \
|
|
py3-pynacl \
|
|
py3-pytest \
|
|
py3-requests \
|
|
py3-ruamel \
|
|
py3-setuptools \
|
|
py3-simplejson \
|
|
py3-urllib3 \
|
|
py3-virtualenv \
|
|
py3-websocket-client \
|
|
py3-yaml \
|
|
python3 \
|
|
python3-dev
|
|
|
|
ENV MOLECULE_PLUGINS="\
|
|
molecule-hetznercloud \
|
|
"
|
|
|
|
# https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=917006
|
|
RUN python3 -m pip install -U wheel pip setuptools
|
|
|
|
ADD . .
|
|
|
|
RUN \
|
|
python3 -m pip wheel \
|
|
-w dist \
|
|
molecule testinfra ${MOLECULE_PLUGINS}
|
|
|
|
RUN ls -1 dist/
|
|
|
|
# ✄---------------------------------------------------------------------
|
|
# This is an actual target container:
|
|
|
|
FROM alpine:edge
|
|
LABEL maintainer="decentral1se <decentral1se@disroot.org>"
|
|
|
|
ENV PACKAGES="\
|
|
docker \
|
|
git \
|
|
openssh-client \
|
|
docker-py \
|
|
libvirt \
|
|
rsync \
|
|
py3-bcrypt \
|
|
py3-botocore \
|
|
py3-certifi \
|
|
py3-cffi \
|
|
py3-chardet \
|
|
py3-click \
|
|
py3-colorama \
|
|
py3-cryptography \
|
|
py3-docutils \
|
|
py3-flake8 \
|
|
py3-idna \
|
|
py3-jinja2 \
|
|
py3-mccabe \
|
|
py3-netifaces \
|
|
py3-paramiko \
|
|
py3-pbr \
|
|
py3-pip \
|
|
py3-pluggy \
|
|
py3-psutil \
|
|
py3-ptyprocess \
|
|
py3-py \
|
|
py3-pycodestyle \
|
|
py3-pynacl \
|
|
py3-pytest \
|
|
py3-requests \
|
|
py3-ruamel \
|
|
py3-setuptools \
|
|
py3-urllib3 \
|
|
py3-virtualenv \
|
|
py3-websocket-client \
|
|
python3 \
|
|
"
|
|
|
|
ENV BUILD_DEPS="\
|
|
gcc \
|
|
libc-dev \
|
|
libvirt-dev \
|
|
make \
|
|
"
|
|
|
|
ENV PIP_INSTALL_ARGS="\
|
|
--only-binary :all: \
|
|
--no-index \
|
|
-f /usr/src/molecule/dist \
|
|
"
|
|
|
|
ENV MOLECULE_PLUGINS="\
|
|
molecule-hetznercloud \
|
|
"
|
|
|
|
RUN \
|
|
apk add --update --no-cache \
|
|
${BUILD_DEPS} ${PACKAGES} \
|
|
&& apk del --no-cache ${BUILD_DEPS} \
|
|
&& rm -rf /root/.cache
|
|
|
|
COPY --from=molecule-builder \
|
|
/usr/src/molecule/dist \
|
|
/usr/src/molecule/dist
|
|
|
|
RUN \
|
|
python3 -m pip install \
|
|
${PIP_INSTALL_ARGS} \
|
|
molecule testinfra ${MOLECULE_PLUGINS} && \
|
|
molecule --version && \
|
|
molecule drivers && \
|
|
pip check
|
|
|
|
ENV SHELL /bin/bash
|