https://github.com/mon-ius/docker-yarn-dev
Modern develop environment, just in box!
https://github.com/mon-ius/docker-yarn-dev
Last synced: about 1 year ago
JSON representation
Modern develop environment, just in box!
- Host: GitHub
- URL: https://github.com/mon-ius/docker-yarn-dev
- Owner: Mon-ius
- License: gpl-3.0
- Created: 2024-11-30T14:26:11.000Z (over 1 year ago)
- Default Branch: master
- Last Pushed: 2025-03-19T16:06:22.000Z (over 1 year ago)
- Last Synced: 2025-05-08T17:54:18.279Z (about 1 year ago)
- Language: Shell
- Homepage:
- Size: 64.5 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Docker-Yarn-Dev
[](https://github.com/Mon-ius/Docker-Yarn-Dev/actions?query=workflow:build)
[](https://hub.docker.com/r/monius/docker-yarn-dev)
[](https://github.com/Mon-ius/Docker-Yarn-Dev)
[](https://www.gnu.org/licenses/gpl-3.0)
> Modern develop environment, with Yarn.
Multi-platform: `linux/amd64`, `linux/arm64`, `linux/arm`, `linux/s390x` and `linux/riscv64`;
> [!IMPORTANT]
> For permission related issue to use `docker` instead of `sudo docker`
```sh
sudo chmod 666 /var/run/docker.sock
sudo groupadd docker
sudo usermod -aG docker $USER
```
> [!TIP]
> - To use customized `port`, set `-e X_PORT=$X_PORT`
> - To use Encryption with `user` and `passwd`, set `X_SERVER=$X_SERVER` and `-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 |
---
```sh
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:ssh
```
---
```sh
docker 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:pro
```
> [!NOTE]
> - 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`
```sh
docker rm -f yarn_dev && docker rmi -f monius/docker-yarn-dev
```
> [!WARNING]
> - To proxy all packages from both LAN net and container itself.
```sh
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
```
> [!CAUTION]
> - To prune all docker containers and images
```sh
docker rm -f $(docker ps -a -q) && docker rmi -f $(docker images -a -q)
```