1. Pull Image
docker pull uber/kraken:latest
2. 1-Click Launch Command
docker run -d --name kraken --restart always uber/kraken:latest
FROM debian:12
# Fix repository configuration for Debian 12 (bookworm) with multiple mirrors and better retry logic
RUN echo 'Acquire::Check-Valid-Until "false";' > /etc/apt/apt.conf.d/99no-check-valid-until && \
echo 'Acquire::AllowInsecureRepositories "true";' >> /etc/apt/apt.conf.d/99no-check-valid-until && \
echo 'Acquire::Retries "10";' >> /etc/apt/apt.conf.d/99no-check-valid-until && \
echo 'Acquire::http::Timeout "60";' >> /etc/apt/apt.conf.d/99no-check-valid-until
RUN apt-get clean \
&& rm -rf /var/lib/apt/lists/* \
&& \
( \
unset http_proxy https_proxy no_proxy && \
apt-get update --allow-releaseinfo-change -o Acquire::Retries=10 -o Acquire::http::No-Cache=true -o Acquire::http::timeout=60 -o Acquire::ForceIPv4=true \
) \
&& \
( \
unset http_proxy https_proxy no_proxy && \
apt-get install -y --no-install-recommends --fix-missing --allow-unauthenticated \
curl \
nginx \
) \
&& rm -rf /var/lib/apt/lists/*
RUN mkdir -p -m 777 /var/log/kraken/kraken-proxy
RUN mkdir -p -m 777 /var/cache/kraken/kraken-proxy
RUN mkdir -p -m 777 /var/run/kraken
ARG USERNAME="root"
ARG USERID="0"
RUN if [ ${USERID} != "0" ]; then useradd --uid ${USERID} ${USERNAME}; fi
COPY ./docker/setup_nginx.sh /tmp/setup_nginx.sh
RUN /tmp/setup_nginx.sh ${USERNAME}
COPY ./proxy/proxy /usr/bin/kraken-proxy
COPY ./config /etc/kraken/config
COPY ./nginx/config /etc/kraken/nginx/config
COPY ./test/tls /etc/kraken/tls
RUN chmod +x /usr/bin/kraken-proxy
USER ${USERNAME}
WORKDIR /etc/kraken
Container Topology & Configured Services