mirror of
https://github.com/m1k1o/neko-rooms.git
synced 2026-11-03 07:01:35 -06:00
add docker in docker docs.
This commit is contained in:
@@ -0,0 +1 @@
|
||||
data
|
||||
@@ -0,0 +1,7 @@
|
||||
FROM docker:dind
|
||||
|
||||
COPY nrooms-* /
|
||||
|
||||
VOLUME [ "/data" ]
|
||||
|
||||
ENTRYPOINT [ "/nrooms-entrypoint.sh" ]
|
||||
@@ -0,0 +1,18 @@
|
||||
# dind: Docker in Docker
|
||||
|
||||
Neko rooms manages neko containers in docker and routes them using traefik. This is whole implementation put inside docker, that runs in docker. It is additional layer of security, but still not perfect (because dind requires `--privileged`).
|
||||
|
||||
This overhead of putting docker in docker can have negative impact on the usability, therefore users are encouraged to **not deploy neko-rooms using dind** method.
|
||||
|
||||
However, there are some usecases, when this might come in handy:
|
||||
- just testing out neko-rooms
|
||||
- absolutely needed additional security layer
|
||||
- developing neko-rooms
|
||||
|
||||
## Pull images
|
||||
|
||||
In order to pull new images run:
|
||||
|
||||
```sh
|
||||
docker-compose exec neko-rooms docker pull m1k1o/neko:chromium
|
||||
```
|
||||
@@ -0,0 +1,19 @@
|
||||
version: "3"
|
||||
|
||||
services:
|
||||
neko-rooms:
|
||||
build: "./"
|
||||
restart: "unless-stopped"
|
||||
privileged: true
|
||||
environment:
|
||||
- "TZ=Europe/Vienna"
|
||||
- "NEKO_ROOMS_EPR=59000-59049"
|
||||
- "NEKO_ROOMS_NAT1TO1=10.8.0.1" # IP address of your server
|
||||
- "NEKO_ROOMS_INSTANCE_URL=http://10.8.0.1:8080/" # external URL
|
||||
volumes:
|
||||
- ./data/storage:/data
|
||||
- ./data/docker:/var/lib/docker
|
||||
- ./data/certs:/certs
|
||||
ports:
|
||||
- 8080:80
|
||||
- 59000-59049:59000-59049/udp
|
||||
Executable
+4
@@ -0,0 +1,4 @@
|
||||
#!/bin/sh
|
||||
|
||||
/nrooms-start.sh &
|
||||
source /usr/local/bin/dockerd-entrypoint.sh
|
||||
Executable
+70
@@ -0,0 +1,70 @@
|
||||
#!/bin/sh
|
||||
|
||||
#
|
||||
# wait for docker to start
|
||||
#
|
||||
|
||||
until docker ps
|
||||
do
|
||||
echo "waiting for docker..."
|
||||
sleep 1
|
||||
done
|
||||
|
||||
#
|
||||
# create traefik network
|
||||
#
|
||||
|
||||
docker network create --attachable traefik
|
||||
|
||||
#
|
||||
# (re)start traefik
|
||||
#
|
||||
|
||||
docker stop traefik
|
||||
docker rm traefik
|
||||
docker run -d \
|
||||
--restart unless-stopped \
|
||||
--name traefik \
|
||||
--network=traefik \
|
||||
-p "80:80" \
|
||||
-v "/var/run/docker.sock:/var/run/docker.sock:ro" \
|
||||
-e "TZ=${TZ}" \
|
||||
traefik:2.4 \
|
||||
--providers.docker=true \
|
||||
--providers.docker.watch=true \
|
||||
--providers.docker.exposedbydefault=false \
|
||||
--providers.docker.network=traefik \
|
||||
--entrypoints.web.address=:80;
|
||||
|
||||
# pull some neko images...
|
||||
docker pull m1k1o/neko:firefox
|
||||
docker pull m1k1o/neko:chromium
|
||||
|
||||
#
|
||||
# (re)start neko-rooms
|
||||
#
|
||||
|
||||
docker stop nrooms
|
||||
docker rm nrooms
|
||||
docker run -t \
|
||||
--restart unless-stopped \
|
||||
--name nrooms \
|
||||
--network=traefik \
|
||||
-v "/var/run/docker.sock:/var/run/docker.sock" \
|
||||
-v "/data:/data" \
|
||||
-e "TZ=${TZ}" \
|
||||
-e "NEKO_ROOMS_EPR=${NEKO_ROOMS_EPR}" \
|
||||
-e "NEKO_ROOMS_NAT1TO1=${NEKO_ROOMS_NAT1TO1}" \
|
||||
-e "NEKO_ROOMS_INSTANCE_URL=${NEKO_ROOMS_INSTANCE_URL}" \
|
||||
-e "NEKO_ROOMS_TRAEFIK_DOMAIN=*" \
|
||||
-e "NEKO_ROOMS_TRAEFIK_ENTRYPOINT=web" \
|
||||
-e "NEKO_ROOMS_TRAEFIK_NETWORK=traefik" \
|
||||
-e "NEKO_ROOMS_STORAGE_ENABLED=true" \
|
||||
-e "NEKO_ROOMS_STORAGE_INTERNAL=/data" \
|
||||
-e "NEKO_ROOMS_STORAGE_EXTERNAL=/data" \
|
||||
-l "traefik.enable=true" \
|
||||
-l "traefik.http.services.neko-rooms-frontend.loadbalancer.server.port=8080" \
|
||||
-l "traefik.http.routers.neko-rooms.entrypoints=web" \
|
||||
-l 'traefik.http.routers.neko-rooms.rule=HostRegexp(`{host:.+}`)' \
|
||||
-l 'traefik.http.routers.neko-rooms.priority=1' \
|
||||
m1k1o/neko-rooms:latest;
|
||||
Reference in New Issue
Block a user