Before we run the server you will have to build the pipe bomb docker image by doing;
$ docker build -t "pipe-bomb-server" .
After the image is built you want to find a place to put the container in, personally I will do it in ~/docker/pipe-bomb-server. In the directory of your choosing make a compose.yml file which should look something like this.
services:
pipe-bomb-server:
image: pipe-bomb-server
container_name: pipe-bomb-server
ports:
- "8000:8000"
# volumes:
# - ./Config.json:/usr/src/app/Config.json
# # the database has a volume incase you want to move/backup or do anything else with the files
# - ./database/music.db:/usr/src/app/music.db
# - ./database/music.db-smh:/usr/src/app/music.db-shm
# - ./database/music.db-wal:/usr/src/app/music.db-wal
restart: unless-stoppedKeep the volumes commented out at first so we can let pipe bomb generate the files needed for the volumes, to let pipe bomb generate them run the following command.
$ docker compose up
When you see something like the line API is listening on ___ it's done staring up and generating the files, you can now safely do CTRL-c to stop the server. Now we can uncomment the volumes but before we can run it again we must copy the generated files over.
$ docker cp pipe-bomb-server:/usr/src/app/Config.json .
$ mkdir database
$ docker cp pipe-bomb-server:/usr/src/app/music.db ./database/music.db
$ docker cp pipe-bomb-server:/usr/src/app/music.db-shm ./database/music.db-shm
$ docker cp pipe-bomb-server:/usr/src/app/music.db-wal ./database/music.db-wal
Feel free to edit the config as you like and once you are done with that you can run the server by doing this command (-d will run it in the background)
$ docker compose up