Modern develop environment, with Yarn.
Multi-platform: linux/arm, linux/arm64, linux/amd64, linux/ppc64le, linux/s390x and linux/riscv64
docker run --restart=always -itd \
--name xdev_gpu \
--cap-add NET_ADMIN \
--shm-size=16G \
--device /dev/nvidia3 \
--device /dev/nvidiactl \
--device /dev/nvidia-modeset \
--device /dev/nvidia-uvm \
ghcr.io/mon-ius/docker-yarn-dev:gpuImportant
For permission related issue to use docker instead of sudo docker
sudo chmod 666 /var/run/docker.sock
sudo chown root:docker /var/run/docker.sock
sudo groupadd docker
sudo usermod -aG docker ${USER}
sudo systemctl enable docker && sudo systemctl start dockerTip
- To use customized
port, set-e X_PORT=$X_PORT - To use Encryption with
userandpasswd, setX_SERVER=$X_SERVERand-e X_AUTH=$X_AUTH - To attach it from host, use
docker exec -it yarn_dev /bin/bash
| DockerHub | GHCR |
|---|---|
| docker run --restart=always -itd \ --name yarn_dev \ --cap-add NET_ADMIN \ -e X_SERVER=$X_SERVER -e X_AUTH=$X_AUTH \ -e X_PORT=443 \ monius/docker-yarn-dev |
docker run --restart=always -itd \ --name yarn_dev \ --cap-add NET_ADMIN \ -e X_SERVER=$X_SERVER -e X_AUTH=$X_AUTH \ -e X_PORT=443 \ ghcr.io/mon-ius/docker-yarn-dev |
docker run --restart=always -itd \
--name yarn_dev_ssh \
-v ~/.ssh/id_ed25519:/root/.ssh/id_ed25519 \
-e D_SERVER=$D_SERVER -e D_PORT=$D_PORT \
-e D_USER=$D_USER -e D_PUB_KEY=$D_PUB_KEY \
ghcr.io/mon-ius/docker-yarn-dev:sshdocker run --restart=always -itd \
--name yarn_dev_pro \
--cap-add NET_ADMIN \
-v ~/.ssh/id_ed25519:/root/.ssh/id_ed25519 \
-e D_SERVER=$D_SERVER -e D_PORT=$D_PORT \
-e D_USER=$D_USER -e D_PUB_KEY=$D_PUB_KEY \
-e X_SERVER=$X_SERVER -e X_AUTH=$X_AUTH \
-e X_PORT=443 \
ghcr.io/mon-ius/docker-yarn-dev:proNote
- To stop the environment, use
docker stop yarn_dev - To force remove it, use
docker rm -f yarn_dev - To delete the image, use
docker rmi -f monius/docker-yarn-dev
docker rm -f yarn_dev && docker rmi -f monius/docker-yarn-devWarning
- To proxy all packages from both LAN net and container itself.
ip rule add fwmark 0x1 lookup 100
ip route add local default dev lo table 100
iptables -t mangle -N DEV
iptables -t mangle -A DEV -m mark --mark 0xff -j RETURN
iptables -t mangle -A DEV -d 0.0.0.0/8 -j RETURN
iptables -t mangle -A DEV -d 10.0.0.0/8 -j RETURN
iptables -t mangle -A DEV -d 127.0.0.0/8 -j RETURN
iptables -t mangle -A DEV -d 169.254.0.0/16 -j RETURN
iptables -t mangle -A DEV -d 172.16.0.0/12 -j RETURN
iptables -t mangle -A DEV -d 192.168.0.0/16 -j RETURN
iptables -t mangle -A DEV -d 224.0.0.0/4 -j RETURN
iptables -t mangle -A DEV -d 240.0.0.0/4 -j RETURN
iptables -t mangle -A DEV -p tcp --dport 22 -j RETURN
iptables -t mangle -A DEV -p tcp --sport 22 -j RETURN
iptables -t mangle -A DEV -p tcp -j TPROXY --on-port 60091 --on-ip 127.0.0.1 --tproxy-mark 0x1
iptables -t mangle -A DEV -p udp -j TPROXY --on-port 60091 --on-ip 127.0.0.1 --tproxy-mark 0x1
iptables -t mangle -A PREROUTING -j DEV
iptables -t mangle -N DEV_MASK
iptables -t mangle -A DEV_MASK -m mark --mark 0xff -j RETURN
iptables -t mangle -A DEV_MASK -d 0.0.0.0/8 -j RETURN
iptables -t mangle -A DEV_MASK -d 10.0.0.0/8 -j RETURN
iptables -t mangle -A DEV_MASK -d 127.0.0.0/8 -j RETURN
iptables -t mangle -A DEV_MASK -d 169.254.0.0/16 -j RETURN
iptables -t mangle -A DEV_MASK -d 172.16.0.0/12 -j RETURN
iptables -t mangle -A DEV_MASK -d 192.168.0.0/16 -j RETURN
iptables -t mangle -A DEV_MASK -d 224.0.0.0/4 -j RETURN
iptables -t mangle -A DEV_MASK -d 240.0.0.0/4 -j RETURN
iptables -t mangle -A DEV_MASK -p tcp --dport 22 -j RETURN
iptables -t mangle -A DEV_MASK -p tcp --sport 22 -j RETURN
iptables -t mangle -A DEV_MASK -p tcp -j MARK --set-mark 0x1
iptables -t mangle -A DEV_MASK -p udp -j MARK --set-mark 0x1
iptables -t mangle -A OUTPUT -j DEV_MASK