- Build off of fedora
- Schedule builds every Sunday
- Build and push to Docker Hub
- Test in CI
- Build for arm64 and amd64
- Implement healthchecks
- Only 2 layers :D
- Base building can be moved to TN
- Introduce a docker-compose.yml
- Automatically check code with eslint GHA
- PR's are checked to ensure they run
- Gracefully handle SIGINT/SIGTERM
- Bump deps
- Add devcontainer
- Configure dependabot
32 lines
No EOL
830 B
Docker
32 lines
No EOL
830 B
Docker
FROM quay.io/np22-jpg/fedora-npm AS devel
|
|
ARG NPM_BUILD="npm install"
|
|
|
|
RUN mkdir /app
|
|
WORKDIR /app
|
|
|
|
COPY package.json package-lock.json ./
|
|
RUN $NPM_BUILD
|
|
COPY . .
|
|
|
|
|
|
FROM quay.io/np22-jpg/fedora-node AS release
|
|
|
|
LABEL maintainer="TitaniumNetwork Ultraviolet Team"
|
|
LABEL summary="Ultraviolet Proxy Image"
|
|
LABEL description="Example application of Ultraviolet which can be deployed in production."
|
|
|
|
ENV NODE_ENV=production
|
|
|
|
USER node
|
|
WORKDIR /app
|
|
COPY --from=devel --chown=1000:1000 /app/node_modules node_modules
|
|
COPY --from=devel --chown=1000:1000 /app/src/index.js src/index.js
|
|
COPY --from=devel --chown=1000:1000 /app/package.json package.json
|
|
|
|
EXPOSE 8080/tcp
|
|
|
|
HEALTHCHECK --interval=5s --timeout=3s --start-period=5s \
|
|
CMD /usr/bin/curl -f http://localhost:8080 || false
|
|
|
|
ENTRYPOINT [ "/usr/bin/node" ]
|
|
CMD [ "src/index.js" ] |