Update documentation for docker updates

This commit is contained in:
Zedifus 2022-03-02 19:27:42 +00:00
parent 69e85faa1a
commit ef37afd630

View File

@ -8,7 +8,7 @@ a web interface for the server administrators to interact with their servers. Cr
is compatible with Docker, Linux, Windows 7, Windows 8 and Windows 10. is compatible with Docker, Linux, Windows 7, Windows 8 and Windows 10.
## Documentation ## Documentation
Temporary documentation available on [GitLab](https://gitlab.com/crafty-controller/crafty-commander/wikis/home) Documentation available on [wiki.craftycontrol.com](https://craftycontrol.com)
## Meta ## Meta
Project Homepage - https://craftycontrol.com Project Homepage - https://craftycontrol.com
@ -17,15 +17,33 @@ Discord Server - https://discord.gg/9VJPhCE
Git Repository - https://gitlab.com/crafty-controller/crafty-web Git Repository - https://gitlab.com/crafty-controller/crafty-web
## Basic Docker Usage <br>
**To get started with docker**, all you need to do is pull the image from this git repository's registry. ## Basic Docker Usage 🐳
This is done by using `docker-compose` or `docker run`(You don't need to clone the Repository and build, like in 3.x ).
If you have a config folder already from previous local installation or docker setup, the image should mount this volume, if none is present then it will populate its own config folder for you. With `Crafty Controller 4.0` we have focused on building our DevOps Principles, implementing build automation, and securing our containers, with the hopes of making our Container user's lives abit easier.
### Using the registry image: ### - Two big changes you will notice is:
The provided image supports both `arm64` and `amd64` out the box, if you have issues though you can build it yourself. - We now provide pre-built images for you guys.
- Containers now run as non-root, using practices used by OpenSwift & Kubernetes (root group perms).
----
### - To get started with docker 🛫
All you need to do is pull the image from this git repository's registry.
This is done by using `'docker-compose'` or `'docker run'` (You don't need to clone the Repository and build, like in 3.x ).
If you have a config folder already from previous local installation or _docker setup_*, the image should mount this volume, if no config present then it will populate its own config folder for you. <br> <br>
As the Dockerfile uses the permission structure of `crafty:root` **internally** there is no need to worry about matching the `UID` or `GID` on the host system :)
> ***Make sure the ownership permissions on `servers/ backups/ logs/ configs/ imports/` in the `docker/` are not `root:root`, please just chown the dir recursively to your host user.**
> **Please make sure if you are using a `compose` file, that the above volume mount directories are present, otherwise, docker will just make them and they'll be `root:root` which is not what we want.💀**
<br>
### - Using the registry image 🌎
The provided image supports both `arm64` and `amd64` out the box, if you have issues though you can build it yourself with the `compose` file in `docker/`.
The image is located at: `registry.gitlab.com/crafty-controller/crafty-commander:latest` The image is located at: `registry.gitlab.com/crafty-controller/crafty-commander:latest`
| Branch | Status | | Branch | Status |
@ -56,7 +74,14 @@ $ cat ~/my_password.txt | docker login registry.gitlab.com -u <username> --passw
``` ```
Then use one of the following methods: Then use one of the following methods:
#### docker-compose.yml ### **docker-compose.yml:**
```sh
# We need to make them because of permissions remember!
$ mkdir docker/backups docker/logs docker/servers docker/config docker/import
# Make your compose file
$ vim docker-compose.yml
```
```yml ```yml
version: '3' version: '3'
@ -64,36 +89,48 @@ services:
crafty: crafty:
container_name: crafty_commander container_name: crafty_commander
image: registry.gitlab.com/crafty-controller/crafty-commander:latest image: registry.gitlab.com/crafty-controller/crafty-commander:latest
environment:
- TZ=Etc/UTC
ports: ports:
- "8000:8000" # HTTP - "8000:8000" # HTTP
- "8443:8443" # HTTPS - "8443:8443" # HTTPS
- "8123:8123" # DYNMAP - "8123:8123" # DYNMAP
- "19132:19132/udp" # BEDROCK - "19132:19132/udp" # BEDROCK
- "24000-25600:24000-25600" # MC SERV PORT RANGE - "25500-25600:25500-25600" # MC SERV PORT RANGE
volumes: volumes:
- ./docker/backups:/commander/backups - ./docker/backups:/commander/backups
- ./docker/logs:/commander/logs - ./docker/logs:/commander/logs
- ./docker/servers:/commander/servers - ./docker/servers:/commander/servers
- ./docker/config:/commander/app/config - ./docker/config:/commander/app/config
- ./docker/import:/commander/import
``` ```
#### docker run
```sh ```sh
$ docker-compose up -d && docker-compose logs -f
```
<br>
### **docker run:**
```sh
# We need to make them because of permissions remember!
$ mkdir docker/backups docker/logs docker/servers docker/config docker/import
$ docker run \ $ docker run \
--name crafty_commander \ --name crafty_commander \
-p 8000:8000 \ -p 8000:8000 \
-p 8443:8443 \ -p 8443:8443 \
-p 8123:8123 \ -p 8123:8123 \
-p 19132:19132/udp \ -p 19132:19132/udp \
-p 24000-25600:24000-25600 \ -p 25500-25600:25500-25600 \
-e TZ=Etc/UTC \
-v "/$(pwd)/docker/backups:/commander/backups" \ -v "/$(pwd)/docker/backups:/commander/backups" \
-v "/$(pwd)/docker/logs:/commander/logs" \ -v "/$(pwd)/docker/logs:/commander/logs" \
-v "/$(pwd)/docker/servers:/commander/servers" \ -v "/$(pwd)/docker/servers:/commander/servers" \
-v "/$(pwd)/docker/config:/commander/app/config" \ -v "/$(pwd)/docker/config:/commander/app/config" \
-v "/$(pwd)/docker/import:/commander/import" \
registry.gitlab.com/crafty-controller/crafty-commander:latest registry.gitlab.com/crafty-controller/crafty-commander:latest
``` ```
### Building from the cloned repository: ### **Building from the cloned repository:**
If you are building from `docker-compose` you can find the compose file in `./docker/docker-compose.yml` just `cd` to the docker directory and `docker-compose up -d` If you are building from `docker-compose` you can find the compose file in `./docker/docker-compose.yml` just `cd` to the docker directory and `docker-compose up -d`
@ -108,11 +145,13 @@ $ docker run \
-p 8443:8443 \ -p 8443:8443 \
-p 8123:8123 \ -p 8123:8123 \
-p 19132:19132/udp \ -p 19132:19132/udp \
-p 24000-25600:24000-25600 \ -p 25500-25600:25500-25600 \
-e TZ=Etc/UTC \
-v "/$(pwd)/docker/backups:/commander/backups" \ -v "/$(pwd)/docker/backups:/commander/backups" \
-v "/$(pwd)/docker/logs:/commander/logs" \ -v "/$(pwd)/docker/logs:/commander/logs" \
-v "/$(pwd)/docker/servers:/commander/servers" \ -v "/$(pwd)/docker/servers:/commander/servers" \
-v "/$(pwd)/docker/config:/commander/app/config" \ -v "/$(pwd)/docker/config:/commander/app/config" \
-v "/$(pwd)/docker/import:/commander/import" \
crafty crafty
``` ```
A fresh build will take several minutes depending on your system, but will be rapid thereafter. A fresh build will take several minutes depending on your system, but will be rapid thereafter.