73 lines
1.8 KiB
Groff
73 lines
1.8 KiB
Groff
#http://ruleoftech.com/2017/dockerizing-all-the-things-running-ansible-inside-docker-container
|
|
FROM alpine:3.7
|
|
|
|
ENV ANSIBLE_VERSION 2.7.0
|
|
|
|
ENV BUILD_PACKAGES \
|
|
bash \
|
|
curl \
|
|
tar \
|
|
openssh-client \
|
|
sshpass \
|
|
git \
|
|
python \
|
|
py-boto \
|
|
py-dateutil \
|
|
py-httplib2 \
|
|
py-jinja2 \
|
|
py-paramiko \
|
|
py-pip \
|
|
py-yaml \
|
|
ca-certificates
|
|
|
|
# If installing ansible@testing
|
|
#RUN \
|
|
# echo "@testing http://nl.alpinelinux.org/alpine/edge/testing" >> #/etc/apk/repositories
|
|
|
|
RUN set -x && \
|
|
\
|
|
echo "==> Adding build-dependencies..." && \
|
|
apk --update add --virtual build-dependencies \
|
|
gcc \
|
|
musl-dev \
|
|
libffi-dev \
|
|
openssl-dev \
|
|
python-dev && \
|
|
\
|
|
echo "==> Upgrading apk and system..." && \
|
|
apk update && apk upgrade && \
|
|
\
|
|
echo "==> Adding Python runtime..." && \
|
|
apk add --no-cache ${BUILD_PACKAGES} && \
|
|
pip install --upgrade pip && \
|
|
pip install python-keyczar docker-py && \
|
|
\
|
|
echo "==> Installing Ansible..." && \
|
|
pip install ansible==${ANSIBLE_VERSION} && \
|
|
\
|
|
echo "==> Cleaning up..." && \
|
|
apk del build-dependencies && \
|
|
rm -rf /var/cache/apk/* && \
|
|
\
|
|
echo "==> Adding hosts for convenience..." && \
|
|
mkdir -p /etc/ansible /ansible && \
|
|
echo "[local]" >> /etc/ansible/hosts && \
|
|
echo "localhost" >> /etc/ansible/hosts
|
|
|
|
ENV ANSIBLE_GATHERING smart
|
|
ENV ANSIBLE_HOST_KEY_CHECKING false
|
|
ENV ANSIBLE_RETRY_FILES_ENABLED false
|
|
ENV ANSIBLE_ROLES_PATH /ansible/playbooks/roles
|
|
ENV ANSIBLE_SSH_PIPELINING True
|
|
ENV PYTHONPATH /ansible/lib
|
|
ENV PATH /ansible/bin:$PATH
|
|
ENV ANSIBLE_LIBRARY /ansible/library
|
|
ENV ANSIBLE_FORCE_COLOR true
|
|
|
|
WORKDIR /ansible/playbooks
|
|
|
|
ENTRYPOINT ["ansible-playbook"]
|
|
|
|
RUN mkdir -p /.ansible && chmod 777 /.ansible \
|
|
&& adduser -D -u 1000 user && mkdir -p /home/user/.ssh
|