From 2974b0f4c76a07a0762881c5c1e7ee2e1d4ec750 Mon Sep 17 00:00:00 2001 From: OCram85 Date: Wed, 12 Jul 2023 10:22:59 +0200 Subject: [PATCH] use entrypoint logic --- Dockerfile | 27 +++++++++++------------ README.md | 60 +++++++++++++++++++++++++++++++-------------------- entrypoint.sh | 7 +++--- 3 files changed, 54 insertions(+), 40 deletions(-) diff --git a/Dockerfile b/Dockerfile index a64b136..01acd65 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,6 +1,6 @@ FROM alpine:3.18.2 -#LABEL build_version="" +# Set labels manually, each build service differs in used or predefined labels. LABEL maintainer="OCram85" ARG VERSION LABEL build_version="${VERSION}" @@ -17,8 +17,7 @@ LABEL org.opencontainers.image.url="https://gitea.ocram85.com/OCram85/swarmproxy LABEL org.opencontainers.image.source="https://gitea.ocram85.com/OCram85/swarmproxy.git" LABEL org.opencontainers.image.documentation="https://gitea.ocram85.com/OCram85/swarmproxy" -# Use a custom UID/GID instead of the default system UID which has a greater possibility -# for collisions with the host and other containers. +# Use a individual user and group ip for files and process ENV TINYPROXY_UID 5123 ENV TINYPROXY_GID 5123 @@ -28,24 +27,24 @@ ENV PORT "8888" ENV TIMEOUT "600" ENV LOGLEVEL "Info" ENV MAXCLIENTS "600" -ENV FILTER_FILE "/etc/tinyproxy/filter" +ENV FILTER_FILE "/app/filter" -# Curl is for healthchecks. + +# get existing packages +# curl for healthchecks and debugging RUN apk add --no-cache \ tinyproxy curl -RUN mv /etc/tinyproxy/tinyproxy.conf /etc/tinyproxy/tinyproxy.default.conf && \ - touch /etc/tinyproxy/tinyproxy.conf +COPY entrypoint.sh /app/entrypoint.sh -COPY entrypoint.sh /swarmproxy/entrypoint.sh -WORKDIR /swarmproxy - -RUN chown -R ${TINYPROXY_UID}:${TINYPROXY_GID} /etc/tinyproxy /var/log/tinyproxy /swarmproxy && \ - chmod +x /swarmproxy/entrypoint.sh +RUN touch /app/proxy.conf && \ + chmod +x /app/entrypoint.sh && \ + chown -R ${TINYPROXY_UID}:${TINYPROXY_GID} /app /etc/tinyproxy /var/log/tinyproxy USER ${TINYPROXY_UID}:${TINYPROXY_GID} +WORKDIR /app EXPOSE 8888 -ENTRYPOINT ["/swarmproxy/entrypoint.sh"] -CMD ["-d"] +ENTRYPOINT ["/app/entrypoint.sh"] +CMD ["-c", "/app/proxy.conf", "-d"] diff --git a/README.md b/README.md index c047b20..029bed5 100644 --- a/README.md +++ b/README.md @@ -13,7 +13,7 @@

- swarmproxy + Swarmproxy - Tame your traffic

@@ -26,10 +26,9 @@ ### 1. ⚡ Get the image 📦 -You can download the image from the gitea embedded container registry: `gitea.ocram85.com/ocram85/swarmproxy` with these tags: +You can download the image from the Gitea embedded container registry: `gitea.ocram85.com/ocram85/swarmproxy` with these tags: -- `latest` - Is based on the lasted master branch commit. -- `next` - Is a test build based on the pull request +- `latest`, `main` - Is based on the lasted master branch commit. - `1`, `0.1`, `0.1.0` - tag based version. > **💡 NOTE: See the [packages page](https://gitea.ocram85.com/OCram85/-/packages/container/swarmproxy/latest) for latest version and all other available tags.** @@ -39,43 +38,58 @@ You can download the image from the gitea embedded container registry: `gitea.oc ```yaml version: "3.8" -secrets: - upstream-proxy: - external: true +networks: + egress: + attachable: true + #external: true + +#configs: +# filter_file: +# # config can be predefined / external or loaded from file +# #external: true +# file: ./filter.txt + +#secrets: +# upstream-proxy: +# external: true services: swarmproxy: image: gitea.ocram85.com/OCram85/swarmproxy:latest + deploy: + replicas: 1 + #secrets: + # - upstream-proxy environment: - # mandatory environment variables - - UPSTREAM_PROXY= + # Recommended settings + # Use an optional upstream proxy + #- UPSTREAM_PROXY= # Set UPSTREAM_PROXY as docker secret if your upstream needs authentication # Eg.: http://user:password@upstream.intra:3128 #- UPSTREAM_PROXY_FILE=/run/secrets/UPSTREAM_PROXY - # optional settings + # OPTIONAL config keys #- TINYPROXY_UID=5123 #- TINYPROXY_GID=5123 #- PORT=8888 #- TIMEOUT=600 #- LOGLEVEL=Info #- MAXCLIENTS=600 - #- FILTER_FILE=/ety/tinyproxy/filter - deploy: - replicas: 1 + #- FILTER_FILE=/app/filter volumes: - # mount a single file into the container if you need the modify it afterwards - # You can reload the file with `kill -s USR1 $(pidof tinyproxy)` - - ./filter.txt:/etc/tinyproxy/filter:ro - # Use a docker config or volume in production - - + # You can mount a single filter file into the container. + # To reload the file use the docker kill -s USR1 command. + - ./filter.txt:/app/filter:ro + configs: + - source: filter_file + target: /app/filter networks: - - egress + egress: + aliases: + - swarmproxy + - proxy + -networks: - egress: - attachable: true - #external: true ``` ## 😡 We're Using GitHub Under Protest diff --git a/entrypoint.sh b/entrypoint.sh index d1bc4ad..41a2f88 100644 --- a/entrypoint.sh +++ b/entrypoint.sh @@ -2,7 +2,7 @@ set -e -CONFIG="/etc/tinyproxy/tinyproxy.conf" +CONFIG="/app/proxy.conf" function writeConfig() { cat << EOF >> "$CONFIG" @@ -17,7 +17,7 @@ StatFile "/usr/share/tinyproxy/stats.html" LogLevel $LOGLEVEL MaxClients $MAXCLIENTS -ViaProxyName "tinyproxy" +ViaProxyName "Swarmproxy" Allow 127.0.0.1/8 Allow 10.0.0.0/8 @@ -51,7 +51,7 @@ function showConfig() { function execTinyproxy() { echo "🦁 Starting Tinyproxy..." echo "args count: $#" - echo "args: $@" + echo "args value: $@" exec "/usr/bin/tinyproxy" "$@" } @@ -64,3 +64,4 @@ function main() { } main $@ +echo "entrypoint end. 🚀"