summaryrefslogtreecommitdiff
path: root/doc/INSTALL.md
diff options
context:
space:
mode:
Diffstat (limited to 'doc/INSTALL.md')
-rw-r--r--doc/INSTALL.md96
1 files changed, 71 insertions, 25 deletions
diff --git a/doc/INSTALL.md b/doc/INSTALL.md
index d978e4a..a1598b8 100644
--- a/doc/INSTALL.md
+++ b/doc/INSTALL.md
@@ -1,5 +1,5 @@
-This assumes that you have Docker (version 17.05 or greater)
-and Docker Compose (version 1.6.0 or greater) already installed.
+This assumes that you have Docker (version 19.03 or greater)
+and the Docker Compose CLI (version 1.27.0 or greater) already installed.
### Prepare things
@@ -34,33 +34,79 @@ and Docker Compose (version 1.6.0 or greater) already installed.
Read the comments to guide you. Note that `.env` should be in the root
directory of this repository.
-### Running the Application
+4. Pull the containers:
-Download containers:
-```console
-user@host:szuru$ docker-compose pull
-```
+ This pulls the latest containers from docker.io:
+ ```console
+ user@host:szuru$ docker compose pull
+ ```
+
+ If you have modified the application's source and would like to manually
+ build it, follow the instructions in [**Building**](#Building) instead,
+ then read here once you're done.
+
+5. Run it!
+
+ For first run, it is recommended to start the database separately:
+ ```console
+ user@host:szuru$ docker compose up -d sql
+ ```
+
+ To start all containers:
+ ```console
+ user@host:szuru$ docker compose up -d
+ ```
+
+ To view/monitor the application logs:
+ ```console
+ user@host:szuru$ docker compose logs -f
+ # (CTRL+C to exit)
+ ```
+
+### Building
+
+1. Edit `docker-compose.yml` to tell Docker to build instead of pull containers:
-For first run, it is recommended to start the database separately:
-```console
-user@host:szuru$ docker-compose up -d sql
-```
+ ```diff yaml
+ ...
+ server:
+ - image: szurubooru/server:latest
+ + build: server
+ ...
+ client:
+ - image: szurubooru/client:latest
+ + build: client
+ ...
+ ```
+
+ You can choose to build either one from source.
+
+2. Build the containers:
+
+ ```console
+ user@host:szuru$ docker compose build
+ ```
+
+ That will attempt to build both containers, but you can specify `client`
+ or `server` to make it build only one.
+
+ If `docker compose build` spits out:
+
+ ```
+ ERROR: Service 'server' failed to build: failed to parse platform : "" is an invalid component of "": platform specifier component must match "^[A-Za-z0-9_-]+$": invalid argument
+ ```
+
+ ...you will need to export Docker BuildKit flags:
+
+ ```console
+ user@host:szuru$ export DOCKER_BUILDKIT=1; export COMPOSE_DOCKER_CLI_BUILD=1
+ ```
-To start all containers:
-```console
-user@host:szuru$ docker-compose up -d
-```
+ ...and run `docker compose build` again.
-To view/monitor the application logs:
-```console
-user@host:szuru$ docker-compose logs -f
-# (CTRL+C to exit)
-```
+*Note: If your changes are not taking effect in your builds, consider building
+with `--no-cache`.*
-To stop all containers:
-```console
-user@host:szuru$ docker-compose down
-```
### Additional Features
@@ -71,7 +117,7 @@ user@host:szuru$ docker-compose down
run from docker:
```console
- user@host:szuru$ docker-compose run server ./szuru-admin --help
+ user@host:szuru$ docker compose run server ./szuru-admin --help
```
will give you a breakdown on all available commands.