| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576 | 
							- # arguments
 
- ARG VERSION="master"
 
- # Branch to check out
 
- ARG CHECKOUT_BRANCH="master"
 
- FROM node:lts AS build
 
- #environment variables
 
- ENV PROJECT_NAME="headscale-ui"
 
- # URL for the github/git location
 
- ENV PROJECT_URL="https://github.com/gurucomputing/headscale-ui"
 
- # Set the staging environment
 
- WORKDIR /staging/scripts
 
- WORKDIR /staging
 
- RUN chown 1000:1000 /staging
 
- # Copy across the scripts folder
 
- COPY scripts/* ./scripts/
 
- # Set permissions for all scripts. We do not want normal users to have write
 
- # access to the scripts
 
- RUN chown -R 0:0 scripts
 
- RUN chmod -R 755 scripts
 
- # Build the image. This build runs as root
 
- RUN /staging/scripts/1-image-build.sh
 
- #####
 
- ## Second Image
 
- #####
 
- FROM alpine:latest
 
- #environment variables
 
- ENV PROJECT_NAME="headscale-ui"
 
- # URL for the github/git location
 
- ENV PROJECT_URL="https://github.com/gurucomputing/headscale-ui"
 
- # Ports that caddy will run on
 
- ENV HTTP_PORT="80"
 
- ENV HTTPS_PORT="443"
 
- # Production Web Server port. Runs a self signed SSL certificate
 
- EXPOSE 443
 
- # Set the staging environment
 
- WORKDIR /data
 
- WORKDIR /web
 
- WORKDIR /staging/scripts
 
- WORKDIR /staging
 
- # Copy across the scripts folder
 
- COPY scripts/* ./scripts/
 
- # Copy default caddy config from project root
 
- COPY ./Caddyfile /staging/Caddyfile
 
- COPY --from=build /staging/${PROJECT_NAME}/build /web
 
- RUN apk add --no-cache caddy
 
- # Create a group and user
 
- RUN addgroup -S appgroup && adduser -D appuser -G appgroup
 
- # Set permissions for all scripts. We do not want normal users to have write
 
- # access to the scripts
 
- RUN chown -R 0:0 scripts
 
- RUN chmod -R 755 scripts
 
- RUN chown -R appuser:appgroup /web
 
- RUN chown -R appuser:appgroup /data
 
- # Tell docker that all future commands should run as the appuser user
 
- USER appuser
 
- WORKDIR /data
 
- ENTRYPOINT /bin/sh /staging/scripts/2-initialise.sh
 
 
  |