Sha256: 34284a53ae3bcfac1b9560abae02390ac937988c35e77c84055084f3bd6140ab

Contents?: true

Size: 1.7 KB

Versions: 1

Compression:

Stored size: 1.7 KB

Contents

FROM ruby:2.6.4-alpine3.10
MAINTAINER Timeboard <hello@timeboard.me>

# 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 fcgiwrap --repository /root/apk-packages/fcgiwrap/packages/main --allow-untrusted && \
	rm -rf /root/apk-packages
RUN apk add --update coreutils && \
	apk add --update util-linux && \
	apk add --update docker && \
	apk add --update git && \
	apk add --update git-daemon && \
    apk add --update spawn-fcgi && \
    rm -rf /var/cache/apk/*

# Setting up group and user
# - envs
ARG USER_NAME
ARG USER_UID
ARG USER_GID
ARG DOCKER_GID
# - 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 && \
	adduser --disabled-password --gecos "" --uid $USER_UID --gid $USER_GID $USER_NAME && \
	addgroup --gid $DOCKER_GID "docker" && adduser $USER_NAME docker

USER "$USER_NAME"
WORKDIR "/home/$USER_NAME/.smartcloud/grids/grid-runner/apps"

# Generating entrypoint file
RUN echo -e '#!/bin/sh\n\
gem install --no-document smartcloud\n\
exec "$@"' >> "/home/$(whoami)/entrypoint"; chmod +x "/home/$(whoami)/entrypoint"

# Set entrypoint
ENTRYPOINT "/home/$(whoami)/entrypoint"

CMD ["spawn-fcgi", "-n", "-p", "9000", "/usr/bin/fcgiwrap", "-f"]

Version data entries

1 entries across 1 versions & 1 rubygems

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