FROM docker:latest MAINTAINER Timeboard # Setting up group and user # - envs ARG DOCKER_GID ARG USER_UID ARG USER_NAME # - fix to change gid of 999 to 99 so that addgroup is free to create a group with 999 as gid # - Create group & user. Then add user to group RUN sed -i "s/999/99/" /etc/group && \ addgroup --gid "$DOCKER_GID" "docker" && \ adduser --disabled-password --gecos "" --uid "$USER_UID" "$USER_NAME" && \ adduser "$USER_NAME" "docker" # We need the following: # - fcgiwrap, because that is how nginx does CGI # ----- IMPORTANT NOTE: This is custom build fcgiwrap package to account for NO_BUFFERING option. # ----- Original fcgiwrap: https://github.com/gnosek/fcgiwrap # ----- Custom fcgiwrap: https://github.com/notr1ch/fcgiwrap # - git and git-daemon, because that gets us the git-http-backend CGI script # - ruby, to run smartcloud gem # - spawn-fcgi, to launch fcgiwrap and to create the unix socket COPY fcgiwrap /root/apk-packages/fcgiwrap RUN apk add /root/apk-packages/fcgiwrap/packages/main/x86_64/fcgiwrap-1.1.0-r3.apk --allow-untrusted && \ rm -rf /root/apk-packages RUN apk add --update coreutils && \ apk add --update git && \ apk add --update git-daemon && \ apk add --update ruby && \ apk add --update spawn-fcgi && \ rm -rf /var/cache/apk/* RUN gem install smartcloud --no-rdoc --no-ri # launch fcgiwrap via spawn-fcgi; launch nginx in the foreground # so the container doesn't die on us; supposedly we should be # using supervisord or something like that instead, but this # will do CMD "git, fcgiwrap & spawn-fcgi installed"