Browse Source

Improved the Docker dev workflow slightly.

pull/29/head
Ben Overmyer 5 years ago
parent
commit
2de37a4ddb
4 changed files with 54 additions and 27 deletions
  1. +22
    -27
      README.md
  2. +26
    -0
      config.ini.example
  3. +2
    -0
      docker-compose.yml
  4. +4
    -0
      docker-setup.sh

+ 22
- 27
README.md View File

@@ -90,43 +90,38 @@ make ui # Generates CSS (run this whenever you update your styles)
make run # Runs the application
```

### Using Docker
## Docker

From the cloned git repository, you can quickly stand up a Write Freely instance with Docker and Docker Compose.
### Using Docker for Development

First, you'll need to change the password for MariaDB's root user in `docker-compose.yml` from `changeme` to something that is unique to your setup:
If you'd like to use Docker as a base for working on a site's styles and such,
you can run the following from a Bash shell.

```
environment:
- MYSQL_ROOT_PASSWORD=changeme
```
*Note: This process is intended only for working on site styling. If you'd
like to run Write Freely in production as a Docker service, it'll require a
little more work.*

After that, you can spin up the containers and configure them:
The `docker-setup.sh` script will present you with a few questions to set up
your dev instance. You can hit enter for most of them, except for "Admin username"
and "Admin password." You'll probably have to wait a few seconds after running
`docker-compose up -d` for the Docker services to come up before running the
bash script.

```bash
# 1) Spin up the DB and Write Freely
```
docker-compose up -d
./docker-setup.sh
```

# 2) Connect to MariaDB container
docker-compose exec db /bin/sh

# 3) Log in to MariaDB, using the password you specified in docker-compose.yml
mysql -u root -p

# 4) Create the database for Write Freely
CREATE DATABASE writefreely;
exit
Now you should be able to navigate to http://localhost:8080 and start working!

# 5) Migrate the database
mysql -u root -p writefreely < /tmp/schema.sql
exit
When you're completely done working, you can run `docker-compose down` to destroy
your virtual environment, including your database data. Otherwise, `docker-compose stop`
will shut down your environment without destroying your data.

# 6) Generate the configuration and clean up
docker-compose run web writefreely --config
docker stop writefreely_web_run_1 && docker rm writefreely_web_run_1
```
### Using Docker for Production

Now you should be able to navigate to http://localhost:8080 and start blogging!
Write Freely doesn't yet provide an official Docker pathway to production. We're
working on it, though!

## License



+ 26
- 0
config.ini.example View File

@@ -0,0 +1,26 @@
[server]
hidden_host =
port = 8080

[database]
type = mysql
username = root
password = changeme
database = writefreely
host = db
port = 3306

[app]
site_name = Write Freely Example Blog!
host = http://localhost:8080
theme = write
disable_js = false
webfonts = true
single_user = true
open_registration = false
min_username_len = 3
max_blogs = 1
federation = true
public_stats = true
private = false


+ 2
- 0
docker-compose.yml View File

@@ -4,6 +4,7 @@ services:
build: .
volumes:
- "web-data:/go/src/app"
- "./config.ini.example:/go/src/app/config.ini"
ports:
- "8080:8080"
networks:
@@ -19,6 +20,7 @@ services:
networks:
- writefreely
environment:
- MYSQL_DATABASE=writefreely
- MYSQL_ROOT_PASSWORD=changeme
restart: unless-stopped



+ 4
- 0
docker-setup.sh View File

@@ -0,0 +1,4 @@
#!/bin/bash
docker-compose exec db sh -c 'exec mysql -u root -pchangeme writefreely < /tmp/schema.sql'
docker exec writefreely_web_1 writefreely --gen-keys
docker exec -it writefreely_web_1 writefreely --config

Loading…
Cancel
Save