Files
tuliprox/docker/Dockerfile-manual
T
2025-05-22 18:49:47 +02:00

59 lines
1.6 KiB
Plaintext

FROM alpine:latest AS tz-prep
ARG TZ=UTC
ENV TZ=${TZ}
RUN apk add --no-cache tzdata \
&& mkdir -p /output/etc \
&& mkdir -p /output/usr/share \
&& cp -r /usr/share/zoneinfo /output/usr/share/zoneinfo \
&& ln -sf /usr/share/zoneinfo/${TZ} /output/etc/localtime \
&& mkdir -p /output/etc/ssl/certs \
&& cp /etc/ssl/certs/ca-certificates.crt /output/etc/ssl/certs/ca-certificates.crt
# Scratch Final container
FROM scratch AS scratch-final
ARG TZ=UTC
ENV TZ=${TZ}
# Copy timezone data and localtime from tz-prep
COPY --from=tz-prep /output/usr/share/zoneinfo /usr/share/zoneinfo
COPY --from=tz-prep /output/etc/localtime /etc/localtime
COPY --from=tz-prep /output/etc/ssl/certs/ca-certificates.crt /etc/ssl/certs/ca-certificates.crt
# RUN ln -sf /usr/share/zoneinfo/${TZ} /etc/localtime
WORKDIR /app
COPY ./tuliprox ./
COPY ./web ./web
COPY ./resources ./resources
CMD ["/app/tuliprox", "-s", "-p", "/app/config"]
# Alpine Final container
FROM alpine:latest AS alpine-final
ARG TZ=UTC
ENV TZ=${TZ}
RUN apk add --no-cache bash curl strace tcpdump bind-tools nano ca-certificates tini
# Copy timezone data and localtime from tz-prep
COPY --from=tz-prep /output/usr/share/zoneinfo /usr/share/zoneinfo
COPY --from=tz-prep /output/etc/localtime /etc/localtime
COPY --from=tz-prep /output/etc/ssl/certs/ca-certificates.crt /etc/ssl/certs/ca-certificates.crt
RUN ln -sf /usr/share/zoneinfo/${TZ} /etc/localtime
WORKDIR /app
COPY ./tuliprox ./
COPY ./web ./web
COPY ./resources ./resources
# config should be mounted as volume
# COPY ./config ./config
ENTRYPOINT ["/sbin/tini", "--", "/app/tuliprox"]
CMD ["-s", "-p", "/app/config"]