Sha256: e47bec3359e1e345a40e5a061df76094d2e5e37f5771345663b9c87a238cd05f

Contents?: true

Size: 1.59 KB

Versions: 1

Compression:

Stored size: 1.59 KB

Contents

FROM docker:latest
MAINTAINER Timeboard <hello@timeboard.me>

# 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.1-r4.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 && \
	apk add --update lsof && \
    rm -rf /var/cache/apk/*

RUN gem install smartcloud --no-rdoc --no-ri

COPY spawner.rb "/spawner.rb"

# Generating entrypoint file
RUN echo -e '#!/bin/sh\n\
\n\
ruby /spawner.rb
\n\
su - $USER_NAME
\n\
exec "$@"' >> /entrypoint; chmod +x /entrypoint;

# Set entrypoint
ENTRYPOINT ["/entrypoint"]

CMD "git, fcgiwrap"

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
smartcloud-0.0.128 lib/smartcloud/grids/grid-runner/Dockerfile