Fix Directory Hardcodes, Documentation Improvements (#10)

* Improve the main crontab example.

* Remove /opt/Docker hardcodes.

* Add periods.

* Improve readability.

* Begin removing hardcoded path from the bin files.

* Update main README to no longer enforce hardcoded path. Other improvements.

* Add the load folder with a README.

* Add load folder and its README.

* Improve reverse proxy text files.

* Switch to tabs.

* Update all scripts for tabs, DOCKER_HOME, and comments.

* Let users know the directory choice is optional.

* Fix environment file.

* Add more details for the reverse proxy load balancing.

* Don't actually listen for postgres.

* Fix comments on source file.

* Be more explicit on the pathing.
This commit is contained in:
2023-07-23 14:51:48 -07:00
committed by GitHub
parent e383520ebb
commit 8602f7ada2
18 changed files with 150 additions and 77 deletions

View File

@ -1,21 +1,28 @@
# My Docker Setup
Scripting my way into the Docker world.
I was unable to find a good tutorial on using and managing containers so this is what made sense to me based on practice with `docker-compose`.
I am still new to Docker and am likely to make mistakes, but you're welcome to learn with me. ;)
Scripting my way into the Docker world. I was unable to find a good tutorial on
using and managing containers so this is what made sense to me based on practice
with `docker-compose`. I am still new-ish to Docker and am likely to make
mistakes, but you're welcome to learn with me. ;)
## Disclaimer
Currently the project only focuses on `apt` based operating systems.
## Other README's
Each `./Config/PROJECT/` folder also contains its own README file with specific
information to running that sub project. This file's job is to cover the general
Docker installation. The others then contain details on their program setup.
## How To Use
Most of these commands benefit from being root. Something like a `sudo su -` if you feel comfortable with it.
Otherwise be aware that using sudo may cause file permission conflicts when interacting with the configuration files and folders.
Most of these commands benefit from being root. Something like a `sudo su -` if
you feel comfortable with it. Otherwise be aware that using sudo may cause file
permission conflicts when interacting with the configuration files and folders.
Install the project dependencies.
```
apt install git bash
```
Clone the project.
Clone the project. You may choose anywhere, but `/opt/Docker` is recommended.
```
git clone https://github.com/hyperling/docker /opt/Docker
```
@ -25,7 +32,7 @@ Load the environment variables.
source /opt/Docker/source.env
```
Install docker to the system.
Install docker to the system using the official repos.
```
install.sh
```
@ -50,19 +57,24 @@ Cross your fingers and hope to profit!
## Folders
### Config
Compose projects are set up here. Each folder should have a `docker-compose.yml` file set up.
Compose projects are set up here. Each folder should have a `docker-compose.yml`
file set up.
### Volumes
The data of the files go here if the Config is done correctly.
I think this should be easier to remember than `/var/lib/docker/volumes` when it comes time for migrations.
Hopefully all that'd be needed is to rsync `/opt/Docker` and run `install.sh` and then `start.sh` on the new server.
That's my opinion though, if someone else uses this then they are welcome to place it where they'd like.
The data of the files go here if the Config is done correctly. I think this
should be easier to remember than `/var/lib/docker/volumes` when it comes time
for migrations. Hopefully all that'd be needed is to rsync `/opt/Docker` and run
`install.sh` and then `start.sh` on the new server. You are welcome to use a
directory other than `/opt/Docker`, this project is location agnostic.
### bin
Scripts to help make life easier. Some are pretty basic, but others do nice things like handle the container IDs.
Scripts to help make life easier. Some are pretty basic, but others do nice
things like handle the container IDs.
* `install.sh` : Install dependencies on a new server with apt.
* `create.sh` : Create a new folder with the needed yml file.
* `start.sh` : Start all compose containers.
* `stop.sh` : Stop all compose containers.
* `get_logs.sh` : Create log files rather than using the `docker log` command or searching in /var/whatever.
* `uninstall.sh` : If something goes wrong and you'd like to start from scratch without provisioning a new server then this should do the job.
* `get_logs.sh` : Create log files rather than using the `docker log` command or
searching in /var/whatever.
* `uninstall.sh` : If something goes wrong and you'd like to start from scratch
without provisioning a new server then this should do the job.