mirror of
https://github.com/bingohuang/docker-labs.git
synced 2025-07-14 01:57:32 +08:00
* Add DNS support for PWD instances * Store IP address of PWD in all session networks and restore it with the same IP address * Remove unnecesary print * Change url format to pwd<ip>-port for better DNS filtering * Make PWD listen on 80 and 443 for DNS resolve to work
41 lines
1.6 KiB
Docker
41 lines
1.6 KiB
Docker
FROM docker:1.13.1-dind
|
|
|
|
RUN apk add --no-cache git tmux py2-pip apache2-utils vim build-base gettext-dev curl bash
|
|
|
|
ENV COMPOSE_VERSION=1.11.1
|
|
# Install Compose and Machine
|
|
RUN pip install docker-compose==${COMPOSE_VERSION}
|
|
RUN curl -L https://github.com/docker/machine/releases/download/v0.9.0-rc1/docker-machine-Linux-x86_64 \
|
|
-o /usr/bin/docker-machine && chmod +x /usr/bin/docker-machine
|
|
|
|
# Compile and install httping
|
|
# (used in orchestration workshop, and very useful anyway)
|
|
RUN mkdir -p /opt && cd /opt && \
|
|
curl https://www.vanheusden.com/httping/httping-2.5.tgz | \
|
|
tar -zxf- && cd httping-2.5 && \
|
|
./configure && make install LDFLAGS=-lintl && \
|
|
rm -rf httping-2.5
|
|
|
|
# Replace modprobe with a no-op to get rid of spurious warnings
|
|
# (note: we can't just symlink to /bin/true because it might be busybox)
|
|
RUN rm /sbin/modprobe && echo '#!/bin/true' >/sbin/modprobe && chmod +x /sbin/modprobe
|
|
|
|
# Install a nice vimrc file and prompt (by soulshake)
|
|
COPY ["docker-prompt","/usr/local/bin/"]
|
|
COPY [".vimrc",".bashrc", ".inputrc", "./root/"]
|
|
|
|
ARG docker_storage_driver=overlay2
|
|
|
|
ENV DOCKER_STORAGE_DRIVER=$docker_storage_driver
|
|
|
|
# Move to our home
|
|
WORKDIR /root
|
|
|
|
# Remove IPv6 alias for localhost and start docker in the background ...
|
|
CMD cat /etc/hosts >/etc/hosts.bak && \
|
|
sed 's/^::1.*//' /etc/hosts.bak > /etc/hosts && \
|
|
dockerd --experimental -g /graph --host=unix:///var/run/docker.sock --host=tcp://0.0.0.0:2375 \
|
|
--storage-driver=$DOCKER_STORAGE_DRIVER --dns $PWD_IP_ADDRESS --dns 8.8.8.8 &>/docker.log & \
|
|
while true ; do /bin/bash ; done
|
|
# ... and then put a shell in the foreground, restarting it if it exits
|