FROM alpine:3.5 LABEL com.example.vendor="LakeDrops" \ maintainer="juergen.haas@lakedrops.com" \ version="1.4.0" \ description="An image for GitLab runner to build and test Drupal projects." ARG compose_version=1.21.2 ARG glibc_version=2.28-r0 RUN apk add --no-cache \ ca-certificates # set up nsswitch.conf for Go's "netgo" implementation (which Docker explicitly uses) # - https://github.com/docker/docker-ce/blob/v17.09.0-ce/components/engine/hack/make.sh#L149 # - https://github.com/golang/go/blob/go1.9.1/src/net/conf.go#L194-L275 # - docker run --rm debian:stretch grep '^hosts:' /etc/nsswitch.conf RUN [ ! -e /etc/nsswitch.conf ] && echo 'hosts: files dns' > /etc/nsswitch.conf ENV DOCKER_CHANNEL stable ENV DOCKER_VERSION 18.06.1-ce # TODO ENV DOCKER_SHA256 # https://github.com/docker/docker-ce/blob/5b073ee2cf564edee5adca05eee574142f7627bb/components/packaging/static/hash_files !! # (no SHA file artifacts on download.docker.com yet as of 2017-06-07 though) RUN set -eux; \ \ # this "case" statement is generated via "update.sh" apkArch="$(apk --print-arch)"; \ case "$apkArch" in \ x86_64) dockerArch='x86_64' ;; \ armhf) dockerArch='armel' ;; \ aarch64) dockerArch='aarch64' ;; \ ppc64le) dockerArch='ppc64le' ;; \ s390x) dockerArch='s390x' ;; \ *) echo >&2 "error: unsupported architecture ($apkArch)"; exit 1 ;;\ esac; \ \ apk add --no-cache \ ca-certificates \ curl \ openssl; \ \ if ! curl -fSL "https://download.docker.com/linux/static/${DOCKER_CHANNEL}/${dockerArch}/docker-${DOCKER_VERSION}.tgz" -o docker.tgz; then \ echo >&2 "error: failed to download 'docker-${DOCKER_VERSION}' from '${DOCKER_CHANNEL}' for '${dockerArch}'"; \ exit 1; \ fi; \ \ tar --extract \ --file docker.tgz \ --strip-components 1 \ --directory /usr/local/bin/ \ ; \ rm docker.tgz; \ \ dockerd --version; \ docker --version COPY modprobe.sh /usr/local/bin/modprobe COPY docker-entrypoint.sh /usr/local/bin/ COPY drush.sh /usr/local/bin/drush COPY node /usr/local/bin/node COPY npm /usr/local/bin/npm COPY volume.php /usr/local/bin/volume.php COPY gulp /usr/local/bin/gulp COPY backstop /usr/local/bin/backstop ENTRYPOINT ["docker-entrypoint.sh"] CMD ["sh"] RUN mkdir -p /root/.ssh && \ echo "StrictHostKeyChecking no" >> /root/.ssh/config && \ \ apk update && \ apk add --no-cache curl openssl openssh ca-certificates wget make patch \ bash fish python git unzip \ php7 php7-phar php7-json php7-dom php7-gd php7-mbstring php7-openssl \ php7-pdo php7-curl php7-xml php7-zip php7-session php7-ctype php7-iconv php7-bcmath && \ \ sed -i -e 's/memory_limit = 128M/memory_limit = -1/g' /etc/php7/php.ini && \ \ wget -q https://alpine-pkgs.sgerrand.com/sgerrand.rsa.pub -O /etc/apk/keys/sgerrand.rsa.pub && \ wget -q https://github.com/sgerrand/alpine-pkg-glibc/releases/download/${glibc_version}/glibc-${glibc_version}.apk && \ apk add --no-cache glibc-${glibc_version}.apk && \ rm glibc-${glibc_version}.apk && \ ln -s /lib/libz.so.1 /usr/glibc-compat/lib/ && \ ln -s /lib/libc.musl-x86_64.so.1 /usr/glibc-compat/lib && \ ln -s /usr/lib/libgcc_s.so.1 /lib/libgcc_s.so.1 && \ ln -s /lib/libgcc_s.so.1 /usr/glibc-compat/lib/ && \ \ ln -s /usr/bin/php7 /usr/local/bin/php && \ \ wget -q https://github.com/ahoy-cli/ahoy/releases/download/2.0.0/ahoy-bin-`uname -s`-amd64 -O /usr/local/bin/ahoy && \ chmod +x /usr/local/bin/ahoy && \ \ wget -q https://github.com/docker/compose/releases/download/${compose_version}/docker-compose-`uname -s`-`uname -m` -O /usr/local/bin/docker-compose && \ chmod +x /usr/local/bin/docker-compose && \ \ wget -q https://getcomposer.org/composer.phar -O /usr/local/bin/composer && \ chmod +x /usr/local/bin/composer && \ composer selfupdate 1.5.0 && \ \ git clone https://github.com/tj/git-extras.git && \ cd git-extras && \ git checkout $(git describe --tags $(git rev-list --tags --max-count=1)) && \ make install && \ cd .. && \ rm -rf git-extras && \ \ composer global require "hirak/prestissimo:^0.3" && \ \ ln -s /usr/local/bin/ahoy /usr/local/bin/a && \ ln -s /usr/local/bin/composer /usr/local/bin/c && \ ln -s /usr/local/bin/docker-compose /usr/local/bin/d-c && \ ln -s /usr/local/bin/drush /usr/local/bin/d ENV LAKEDROPS_DEV_DC_OPTIONS "-T"