mirror of
https://github.com/EpicMorg/docker-scripts.git
synced 2024-12-27 07:05:41 +03:00
92 lines
3.3 KiB
Docker
92 lines
3.3 KiB
Docker
FROM epicmorg/debian:bullseye-develop as compile-stage
|
|
ARG DEBIAN_FRONTEND=noninteractive
|
|
|
|
WORKDIR /usr/src
|
|
|
|
##################################################################
|
|
# Run libowfat compilation in separated layer to benefit from docker layer cache
|
|
##################################################################
|
|
RUN cvs -d :pserver:cvs@cvs.fefe.de:/cvs -z9 co libowfat ; \
|
|
git clone git://erdgeist.org/opentracker ; \
|
|
cd /usr/src/libowfat ; \
|
|
make
|
|
|
|
##################################################################
|
|
# http://erdgeist.org/arts/software/opentracker/#build-instructions
|
|
##################################################################
|
|
RUN cd /usr/src/opentracker ; \
|
|
# Build opentracker statically to use it in scratch image
|
|
LDFLAGS=-static make ; \
|
|
mkdir -pv /tmp/stage/bin ; \
|
|
install -m 755 opentracker.debug /tmp/stage/bin ; \
|
|
make DESTDIR=/tmp/stage BINDIR="/bin" install
|
|
|
|
FROM epicmorg/debian:bullseye
|
|
|
|
|
|
##################################################################
|
|
# setup future environment
|
|
##################################################################
|
|
ENV APP_DIR=/etc/opentracker
|
|
|
|
ENV RETRACKER_BIN=opentracker
|
|
ENV RETRACKER_PORT=6969
|
|
ENV RETRACKER_CONFIG=/etc/opentracker/opentracker.conf
|
|
ENV RETRACKER_DEBUG=false
|
|
ENV RETRACKER_OPTS=
|
|
|
|
WORKDIR ${APP_DIR}
|
|
|
|
RUN mkdir -pv ${APP_DIR}
|
|
|
|
COPY --from=compile-stage /tmp/stage/bin /usr/bin
|
|
COPY etc/opentracker/ ${APP_DIR}
|
|
|
|
##################################################################
|
|
# cleaninig up
|
|
##################################################################
|
|
RUN apt clean -y && \
|
|
apt autoclean -y && \
|
|
rm -rfv /var/lib/apt/lists/* && \
|
|
rm -rfv /tmp/mc.patch && \
|
|
rm -rfv /var/cache/apt/archives/*.deb && \
|
|
rm -rfv /tmp/* && \
|
|
rm -rfv ${APP_API_DIR}/phpcs.xml && \
|
|
rm -rfv ${APP_API_DIR}/composer.lock && \
|
|
rm -rfv ${APP_API_DIR}/composer.json
|
|
|
|
##################################################################
|
|
# healthcheck. good practice
|
|
##################################################################
|
|
HEALTHCHECK --interval=2m --timeout=3s CMD curl -f http://localhost:${RETRACKER_PORT}/ || exit 1
|
|
|
|
##################################################################
|
|
# Add image configuration and scripts
|
|
##################################################################
|
|
COPY docker-entrypoint.sh /usr/bin/docker-entrypoint.sh
|
|
RUN chmod 755 /usr/bin/docker-entrypoint.sh
|
|
|
|
RUN updatedb
|
|
|
|
##################################################################
|
|
# Final config
|
|
##################################################################
|
|
EXPOSE ${RETRACKER_PORT}/udp
|
|
EXPOSE ${RETRACKER_PORT}/tcp
|
|
|
|
##################################################################
|
|
# volumes for logs and data
|
|
##################################################################
|
|
|
|
|
|
##################################################################
|
|
# Setup stopsignal
|
|
##################################################################
|
|
STOPSIGNAL SIGINT
|
|
|
|
##################################################################
|
|
# run site
|
|
##################################################################
|
|
ENTRYPOINT ["tini", "-s", "--", "docker-entrypoint.sh"]
|
|
CMD ["docker-entrypoint.sh"]
|