2022-08-06 07:52:11 -05:00
|
|
|
# My Docker Setup
|
2022-09-27 03:44:33 -05:00
|
|
|
Scripting my way into the Docker world.
|
2023-07-04 09:23:07 -07:00
|
|
|
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`.
|
2023-07-04 09:12:47 -07:00
|
|
|
I am still new to Docker and am likely to make mistakes, but you're welcome to learn with me. ;)
|
2022-09-27 03:44:33 -05:00
|
|
|
|
|
|
|
## Disclaimer
|
|
|
|
Currently the project only focuses on `apt` based operating systems.
|
2022-08-06 07:52:11 -05:00
|
|
|
|
|
|
|
## How To Use
|
2023-07-04 09:19:47 -07:00
|
|
|
Most of these commands benefit from being root. Something like a `sudo su -` if you feel comfortable with it.
|
2023-07-04 09:23:07 -07:00
|
|
|
Otherwise be aware that using sudo may cause file permission conflicts when interacting with the configuration files and folders.
|
2023-07-04 09:19:47 -07:00
|
|
|
|
2023-07-04 09:17:04 -07:00
|
|
|
Install the project dependencies.
|
2023-07-04 09:18:01 -07:00
|
|
|
```
|
|
|
|
apt install git bash
|
|
|
|
```
|
2023-07-04 09:12:47 -07:00
|
|
|
|
2023-07-04 09:17:04 -07:00
|
|
|
Clone the project.
|
2023-07-04 09:18:01 -07:00
|
|
|
```
|
|
|
|
git clone https://github.com/hyperling/docker /opt/Docker
|
|
|
|
```
|
2023-07-04 09:12:47 -07:00
|
|
|
|
2023-07-04 09:17:04 -07:00
|
|
|
Load the environment variables.
|
2023-07-04 09:18:01 -07:00
|
|
|
```
|
|
|
|
source /opt/Docker/source.env
|
|
|
|
```
|
2023-07-04 09:12:47 -07:00
|
|
|
|
2023-07-04 09:17:04 -07:00
|
|
|
Install docker to the system.
|
2023-07-04 09:18:01 -07:00
|
|
|
```
|
|
|
|
install.sh
|
|
|
|
```
|
2023-07-04 09:12:47 -07:00
|
|
|
|
2023-07-04 09:17:04 -07:00
|
|
|
Create an area to add a new product.
|
2023-07-04 09:18:01 -07:00
|
|
|
```
|
|
|
|
create.sh PROJECT_NAME
|
|
|
|
```
|
2023-07-04 09:12:47 -07:00
|
|
|
|
2023-07-04 09:17:04 -07:00
|
|
|
Edit the project's details.
|
2023-07-04 09:18:01 -07:00
|
|
|
```
|
|
|
|
vi /opt/Docker/Config/PROJECT_NAME/docker-compose.yml
|
|
|
|
```
|
|
|
|
|
|
|
|
Start all of the docker projects.
|
|
|
|
```
|
|
|
|
start.sh
|
|
|
|
```
|
2023-07-04 09:12:47 -07:00
|
|
|
|
2023-07-04 09:17:04 -07:00
|
|
|
Cross your fingers and hope to profit!
|
2022-08-06 07:52:11 -05:00
|
|
|
|
2022-08-06 08:18:06 -05:00
|
|
|
## Folders
|
|
|
|
|
|
|
|
### Config
|
2022-09-27 03:44:33 -05:00
|
|
|
Compose projects are set up here. Each folder should have a `docker-compose.yml` file set up.
|
2022-08-06 07:52:11 -05:00
|
|
|
|
2022-08-06 08:18:06 -05:00
|
|
|
### Volumes
|
2022-08-06 07:52:11 -05:00
|
|
|
The data of the files go here if the Config is done correctly.
|
2022-09-27 03:44:33 -05:00
|
|
|
I think this should be easier to remember than `/var/lib/docker/volumes` when it comes time for migrations.
|
2023-07-04 09:23:07 -07:00
|
|
|
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.
|
2022-08-06 08:18:06 -05:00
|
|
|
|
|
|
|
### bin
|
|
|
|
Scripts to help make life easier. Some are pretty basic, but others do nice things like handle the container IDs.
|
2022-09-27 03:44:33 -05:00
|
|
|
* `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.
|