# syntax=docker/dockerfile:1 # aquatic_udp # # Please note that running aquatic_udp under Docker is NOT RECOMMENDED due to # suboptimal performance. This file is provided as a starting point for those # who still wish to do so. # # Customize by setting CONFIG_FILE_CONTENTS and # ACCESS_LIST_CONTENTS environment variables. # # By default runs tracker on port 3000 without info hash access control. # # Run from repository root directory with: # $ DOCKER_BUILDKIT=1 docker build -t aquatic-udp -f docker/aquatic_udp.Dockerfile . # $ docker run -it -p 0.0.0.0:3000:3000/udp --name aquatic-udp aquatic-udp # # Pass --network="host" to run command for much better performance. FROM rust:latest AS builder WORKDIR /usr/src/aquatic COPY . . RUN . ./scripts/env-native-cpu-without-avx-512 && cargo build --release -p aquatic_udp FROM debian:stable-slim ENV CONFIG_FILE_CONTENTS "log_level = 'warn'" ENV ACCESS_LIST_CONTENTS "" WORKDIR /root/ COPY --from=builder /usr/src/aquatic/target/release/aquatic_udp ./ # Create entry point script for setting config and access # list file contents at runtime COPY <<-"EOT" ./entrypoint.sh #!/bin/bash echo -e "$CONFIG_FILE_CONTENTS" > ./config.toml echo -e "$ACCESS_LIST_CONTENTS" > ./access-list.txt exec ./aquatic_udp -c ./config.toml "$@" EOT RUN chmod +x ./entrypoint.sh ENTRYPOINT ["./entrypoint.sh"]