ansible/test/runner/Dockerfile

76 lines
2.5 KiB
Docker

FROM ubuntu:16.04
COPY docker/deadsnakes.list /etc/apt/sources.list.d/deadsnakes.list
RUN apt-key adv --keyserver keyserver.ubuntu.com --recv-keys F23C5A6CF475977595C89F51BA6932366A755776
RUN apt-get update -y && \
DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends \
ca-certificates \
curl \
gcc \
git \
libbz2-dev \
libffi-dev \
libreadline-dev \
libsqlite3-dev \
libxml2-dev \
libxslt1-dev \
locales \
make \
openssh-client \
openssl \
python2.6-dev \
python2.7-dev \
python3.5-dev \
python3.6-dev \
shellcheck \
&& \
apt-get clean
ADD https://raw.githubusercontent.com/pyenv/pyenv-installer/master/bin/pyenv-installer /tmp/pyenv-installer
RUN bash -c 'PYENV_ROOT=/usr/local/opt/pyenv bash /tmp/pyenv-installer'
COPY docker/python* /tmp/
RUN bash -c 'PYENV_ROOT=/usr/local/opt/pyenv /usr/local/opt/pyenv/bin/pyenv install /tmp/python3.7.0a2'
RUN ln -s /usr/local/opt/pyenv/versions/python3.7.0a2/bin/python3.7 /usr/local/bin/python3.7
RUN ln -s /usr/local/opt/pyenv/versions/python3.7.0a2/bin/pip3.7 /usr/local/bin/pip3.7
RUN rm /etc/apt/apt.conf.d/docker-clean
RUN locale-gen en_US.UTF-8
VOLUME /sys/fs/cgroup /run/lock /run /tmp
ADD https://bootstrap.pypa.io/get-pip.py /tmp/get-pip.py
COPY requirements/*.txt /tmp/requirements/
COPY docker/requirements.sh /tmp/
RUN cd /tmp/requirements && /tmp/requirements.sh
RUN ln -s python2.7 /usr/bin/python2
RUN ln -s python3.6 /usr/bin/python3
RUN ln -s python3 /usr/bin/python
# Install dotnet core SDK, pwsh, and other PS/.NET sanity test tools.
# For now, we need to manually purge XML docs and other items from a Nuget dir to vastly reduce the image size.
# See https://github.com/dotnet/dotnet-docker/issues/237 for details.
RUN apt-get update -y && \
DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends \
apt-transport-https \
&& \
apt-get clean
ADD https://packages.microsoft.com/config/ubuntu/16.04/prod.list /etc/apt/sources.list.d/microsoft.list
RUN curl --silent https://packages.microsoft.com/keys/microsoft.asc | apt-key add -
RUN apt-get update -y && \
DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends \
dotnet-sdk-2.1.4 \
powershell \
&& \
find /usr/share/dotnet/sdk/NuGetFallbackFolder/ -name '*.xml' -type f -delete \
&& \
apt-get clean
RUN dotnet --version
RUN pwsh --version
COPY requirements/sanity.ps1 /tmp/
RUN /tmp/sanity.ps1
ENV container=docker
CMD ["/sbin/init"]