mirror of
https://github.com/writeas/writefreely
synced 2025-02-10 05:20:38 +01:00
Add Dockerfile and Docker Compose files
This adds the first version of a Dockerfile, built on an Alpine Linux variation of the golang image, as well as a Docker Compose file that spins up both a MariaDB and the instance. It also updates the README with instructions on how to get Write Freely running with this setup.
This commit is contained in:
parent
6220e55559
commit
5b393309a5
15
Dockerfile
Normal file
15
Dockerfile
Normal file
@ -0,0 +1,15 @@
|
|||||||
|
FROM golang:1.11.2-alpine3.8
|
||||||
|
|
||||||
|
RUN apk add --update nodejs nodejs-npm make git
|
||||||
|
RUN npm install -g less
|
||||||
|
RUN npm install -g less-plugin-clean-css
|
||||||
|
|
||||||
|
WORKDIR /go/src/app
|
||||||
|
COPY . .
|
||||||
|
|
||||||
|
RUN make install
|
||||||
|
RUN make ui
|
||||||
|
RUN make deps
|
||||||
|
|
||||||
|
EXPOSE 8080
|
||||||
|
CMD ["writefreely"]
|
38
README.md
38
README.md
@ -90,6 +90,44 @@ make ui # Generates CSS (run this whenever you update your styles)
|
|||||||
make run # Runs the application
|
make run # Runs the application
|
||||||
```
|
```
|
||||||
|
|
||||||
|
### Using Docker
|
||||||
|
|
||||||
|
From the cloned git repository, you can quickly stand up a Write Freely instance with Docker and Docker Compose.
|
||||||
|
|
||||||
|
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:
|
||||||
|
|
||||||
|
```
|
||||||
|
environment:
|
||||||
|
- MYSQL_ROOT_PASSWORD=changeme
|
||||||
|
```
|
||||||
|
|
||||||
|
After that, you can spin up the containers and configure them:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# 1) Spin up the DB and Write Freely
|
||||||
|
docker-compose up -d
|
||||||
|
|
||||||
|
# 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
|
||||||
|
|
||||||
|
# 5) Migrate the database
|
||||||
|
mysql -u root -p writefreely < /tmp/schema.sql
|
||||||
|
exit
|
||||||
|
|
||||||
|
# 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
|
||||||
|
```
|
||||||
|
|
||||||
|
Now you should be able to navigate to http://localhost:8080 and start blogging!
|
||||||
|
|
||||||
## License
|
## License
|
||||||
|
|
||||||
Licensed under the AGPL.
|
Licensed under the AGPL.
|
||||||
|
30
docker-compose.yml
Normal file
30
docker-compose.yml
Normal file
@ -0,0 +1,30 @@
|
|||||||
|
version: "3"
|
||||||
|
services:
|
||||||
|
web:
|
||||||
|
build: .
|
||||||
|
volumes:
|
||||||
|
- "web-data:/go/src/app"
|
||||||
|
ports:
|
||||||
|
- "8080:8080"
|
||||||
|
networks:
|
||||||
|
- writefreely
|
||||||
|
depends_on:
|
||||||
|
- db
|
||||||
|
restart: unless-stopped
|
||||||
|
db:
|
||||||
|
image: "mariadb:latest"
|
||||||
|
volumes:
|
||||||
|
- "./schema.sql:/tmp/schema.sql"
|
||||||
|
- db-data:/var/lib/mysql/data
|
||||||
|
networks:
|
||||||
|
- writefreely
|
||||||
|
environment:
|
||||||
|
- MYSQL_ROOT_PASSWORD=changeme
|
||||||
|
restart: unless-stopped
|
||||||
|
|
||||||
|
volumes:
|
||||||
|
web-data:
|
||||||
|
db-data:
|
||||||
|
|
||||||
|
networks:
|
||||||
|
writefreely:
|
Loading…
x
Reference in New Issue
Block a user