41 lines
1.3 KiB
Docker
41 lines
1.3 KiB
Docker
FROM scratch
|
|
ADD docker/alpine/alpine-minirootfs-3.21.2-x86_64.tar.gz /
|
|
|
|
LABEL version="0.1"
|
|
LABEL maintainer="KeyZox"
|
|
|
|
COPY go.mod /build/go.mod
|
|
COPY cmd /build/cmd
|
|
COPY internal /build/internal
|
|
|
|
RUN set -x \
|
|
&& addgroup -g 101 -S nginx\
|
|
&& adduser -S -D -H -u 101 -h /var/cache/nginx -s /sbin/nologin -G nginx -g nginx nginx \
|
|
&& apk add --no-cache go nginx openssl tzdata envsubst curl \
|
|
&& cd /build \
|
|
&& go get git.keyzox.me/42_adjoly/inception/cmd/nginx/entrypoint \
|
|
&& go build git.keyzox.me/42_adjoly/inception/cmd/nginx/entrypoint \
|
|
&& cp /build/entrypoint /docker-entrypoint \
|
|
&& chmod +x /docker-entrypoint \
|
|
&& apk del go \
|
|
&& ln -sf /dev/stdout /var/log/nginx/access.log \
|
|
&& ln -sf /dev/stderr /var/log/nginx/error.log \
|
|
&& rm -Rf /build \
|
|
&& rm -rf /var/cache/apk/* \
|
|
&& mkdir -p /var/www/html \
|
|
&& mkdir -p /etc/nginx/conf.d \
|
|
&& mkdir /docker-entrypoint.d
|
|
|
|
VOLUME /etc/nginx/templates
|
|
VOLUME /docker-entrypoint.d
|
|
COPY docker/nginx/health.conf /etc/nginx/http.d/health.conf
|
|
|
|
ENTRYPOINT [ "/docker-entrypoint" ]
|
|
WORKDIR /etc/nginx
|
|
|
|
STOPSIGNAL SIGQUIT
|
|
|
|
EXPOSE 80
|
|
CMD [ "nginx", "-g", "daemon off;" ]
|
|
HEALTHCHECK --interval=30s --timeout=10s --retries=3 --start-period=3s --start-interval=2s CMD curl http://127.0.0.1:80/health || exit 1
|