FROM docker:19.03.1

RUN apk update && apk add --no-cache \
  git \
  openssl \
  ca-certificates \
  bash \
  curl \
  make \
  gcc \
  g++ \
  python \
  linux-headers \
  paxctl \
  libgcc \
  libstdc++ \
  gnupg \
  nodejs-current \
  nodejs-npm \
  krb5-libs \
  && update-ca-certificates

# Add the patch fix
COPY ./stack-fix.c /lib/

# Prepare the libraries packages
RUN set -ex \
    && apk add --no-cache  --virtual .build-deps build-base \
    && gcc  -shared -fPIC /lib/stack-fix.c -o /lib/stack-fix.so \
    && apk del .build-deps

# export the environment variable of LD_PRELOAD
ENV LD_PRELOAD /lib/stack-fix.so

RUN npm config set unsafe-perm true
ENV CRYPTOGRAPHY_DONT_BUILD_RUST=1
RUN apk update && \
    apk add --no-cache docker-cli python3 && \
    apk add --no-cache --virtual .docker-compose-deps python3-dev libffi-dev openssl-dev gcc libc-dev make && \
    pip3 install docker-compose && \
    apk del .docker-compose-deps