add port forwarding

This commit is contained in:
2025-03-12 09:34:07 +03:00
parent 4404897a23
commit 1d3f8473cd
4 changed files with 26 additions and 1 deletions

View File

@@ -21,6 +21,9 @@ services:
- "./yggdrasil:/etc/yggdrasil"
sysctls:
- "net.ipv6.conf.all.disable_ipv6=0"
environment:
- BIND_PORT=80
- BIND_ADDRESS=nginx
```
## docker cli
@@ -36,3 +39,12 @@ docker run \
yggdrasil
```
# Parameters
Container images are configured using parameters passed at runtime.
|Parameter|Function|
|:--------|:-------|
|-e BIND_PORT|Port to forward.|
|-e BIND_ADDRESS|Address of another docker service to forward to.|

View File

@@ -4,6 +4,9 @@ services:
context: https://git.bitdeals.org/private/yggdrasil.git
dockerfile: ./docker/Dockerfile
image: registry.bitdeals.org/yggdrasil
environment:
- BIND_PORT=
- BIND_ADDRESS=
restart: unless-stopped
cap_add:
- NET_ADMIN

View File

@@ -3,7 +3,7 @@ FROM debian:testing-slim
SHELL [ "/bin/sh", "-eux", "-c" ]
RUN apt-get update \
&& apt-get install -y --no-install-recommends yggdrasil wget ca-certificates unzip libcap2-bin gosu ;\
&& apt-get install -y --no-install-recommends yggdrasil wget ca-certificates unzip libcap2-bin gosu socat;\
apt-get clean ;\
rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/*

View File

@@ -1,5 +1,8 @@
#!/bin/sh
BIND_PORT=${BIND_PORT:-80}
BIND_ADDRESS=${BIND_ADDRESS:-127.0.0.1}
if ! [ -d /var/run/yggdrasil ]
then
install -d -o yggdrasil -g yggdrasil /run/yggdrasil /var/run/yggdrasil
@@ -13,6 +16,13 @@ then
fi
# Port forwarding to another docker service
while sleep 1;
do
socat TCP6-LISTEN:$BIND_PORT,fork,forever,reuseaddr TCP4:$BIND_ADDRESS:$BIND_PORT
done
# Show node address
until yggdrasilctl getself | grep -v "^[[:digit:]]"
do