FROM alpine:3.22.4 AS builder

RUN apk update
RUN apk update && apk upgrade && apk add --no-cache make gcc nodejs npm python3 g++ gcc libc-dev expat-dev libxml2-dev libxmlb-dev yarn nodejs-dev && rm -rf /var/cache/apk/*

RUN mkdir -p /usr/share/vnctalk-hybrid-authenticator2
RUN mkdir -p /usr/share/vnctalk-hybrid-authenticator2/config
ADD app /usr/share/vnctalk-hybrid-authenticator2/app

COPY package.json /usr/share/vnctalk-hybrid-authenticator2/package.json
COPY yarn.lock /usr/share/vnctalk-hybrid-authenticator2/yarn.lock
COPY config.js /usr/share/vnctalk-hybrid-authenticator2/config/vnc-hybrid-authenticator.js

RUN cd /usr/share/vnctalk-hybrid-authenticator2 && yarn install

FROM alpine:3.22.4

RUN apk update && apk upgrade && apk add --no-cache nodejs npm expat libxml2 libxmlb && rm -rf /var/cache/apk/*

COPY --from=builder /usr/share/vnctalk-hybrid-authenticator2 /usr/share/vnctalk-hybrid-authenticator2
# Create non-root user and transfer ownership
RUN addgroup -g 1001 vncuser && \
    adduser -D -u 1001 -G vncuser vncuser

USER vncuser


LABEL org.opencontainers.image.source=https://github.com/vnc-biz/vnclagoon-images

#RUN npm install /usr/share/vnctalk-hybrid-authenticator2/app

CMD ["node", "/usr/share/vnctalk-hybrid-authenticator2/app/app.js"]

