FROM public.ecr.aws/docker/library/nginx:1.27-alpine

WORKDIR /usr/share/nginx/html

COPY . /tmp/webapp-src

RUN set -eux; \
    if [ -f /tmp/webapp-src/webapp/index.html ]; then src=/tmp/webapp-src/webapp; else src=/tmp/webapp-src; fi; \
    cp "$src/nginx.conf" /etc/nginx/nginx.conf; \
    cp "$src/index.html" "$src/config.js" ./; \
    if [ -d "$src/assets" ]; then cp -R "$src/assets" ./assets; fi; \
    cp "$src/start-nginx.sh" /usr/local/bin/start-nginx.sh; \
    chmod +x /usr/local/bin/start-nginx.sh; \
    chown -R 10001:0 /usr/share/nginx/html /usr/local/bin/start-nginx.sh; \
    rm -rf /tmp/webapp-src

ENV API_URL=""
ENV CONSUMER_KEY=""
ENV CONSUMER_SECRET=""
ENV TOKEN_URL=""
ENV CHOREO_API_KEY=""
ENV API_KEY_HEADER=""
ENV OKTA_AUTH_ENABLED=""
ENV OKTA_ISSUER=""
ENV OKTA_CLIENT_ID=""
ENV OKTA_REDIRECT_URI=""
ENV OKTA_SCOPES=""
ENV OKTA_AUTHORIZE_URL=""
ENV OKTA_TOKEN_URL=""
ENV OKTA_LOGOUT_URL=""
ENV OKTA_POST_LOGOUT_REDIRECT_URI=""
ENV OKTA_API_TOKEN_HEADER="X-BT-Okta-Token"

EXPOSE 8080
EXPOSE 8000

USER 10001

HEALTHCHECK --interval=30s --timeout=5s --start-period=5s --retries=3 \
  CMD wget -qO- http://localhost:8080/ >/dev/null || wget -qO- http://localhost:8000/ >/dev/null || exit 1

CMD ["/usr/local/bin/start-nginx.sh"]
