FROM python:3.7-alpine  as base

RUN apk update && \
    apk add curl openssh-client git

RUN mkdir /root/.ssh
COPY ssh_private_key /root/.ssh/id_rsa

RUN chmod 600 /root/.ssh/id_rsa

RUN touch /root/.ssh/known_hosts
RUN ssh-keyscan github.com >> /root/.ssh/known_hosts

RUN rm -rf virtualenv

RUN python3 --version

COPY requirements.txt .

RUN python3 -m venv ./virtualenv
RUN ./virtualenv/bin/python3 -m pip install -r requirements.txt

RUN shred -u /root/.ssh/id_rsa

RUN ./virtualenv/bin/python --version

FROM python:3.7-alpine

RUN apk update && \
    apk add shadow

ARG DOCKER_UID

#ping has a default group of 999 in alpine, which is docker's group
#for warg to access the socket, we need to move the ping group and allow 999 to be docker
RUN groupmod --gid 1000 ping && \
    addgroup --gid 999 docker && \
    adduser -S warg -u $DOCKER_UID && \
    usermod -a -G docker warg


COPY --from=base virtualenv virtualenv
RUN source virtualenv/bin/activate

COPY . .
RUN shred -u ssh_private_key

USER warg

ARG BEBO_ENV=local
ENV BEBO_ENV=$BEBO_ENV
ARG BEBO_VERSION=master
ENV BEBO_VERSION=$BEBO_VERSION

ENTRYPOINT ["./virtualenv/bin/python3"]

CMD ["./warg/warg.py"]
