FROM alpine as build

RUN apk add --no-cache gcc g++ musl-dev linux-headers cmake openssl-dev 
RUN apk add --no-cache make
RUN apk add --no-cache zlib-dev

RUN addgroup -S app && adduser -S -G app app 
RUN chown -R app:app /opt
RUN chown -R app:app /usr/local

# There is a bug in CMake where we cannot build from the root top folder
# So we build from /opt
COPY --chown=app:app . /opt
WORKDIR /opt

USER app
RUN [ "make" ]

FROM alpine as runtime

RUN apk add --no-cache libstdc++

RUN addgroup -S app && adduser -S -G app app 
COPY --chown=app:app --from=build /usr/local/bin/ws /usr/local/bin/ws
RUN chmod +x /usr/local/bin/ws
RUN ldd /usr/local/bin/ws

# Now run in usermode
USER app
WORKDIR /home/app

ENTRYPOINT ["ws"]
EXPOSE 8008
CMD ["--help"]