diff --git a/Dockerfile b/Dockerfile index fd6589d..f4b5a0d 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,35 +1,37 @@ # Build image -FROM golang:1.13-alpine as build +FROM golang:1.14-alpine as build -RUN apk add --update nodejs nodejs-npm make g++ git sqlite-dev +RUN apk add --update nodejs nodejs-npm make g++ git RUN npm install -g less less-plugin-clean-css -RUN go get -u github.com/jteeuwen/go-bindata/... +RUN go get -u github.com/go-bindata/go-bindata/... RUN mkdir -p /go/src/github.com/writeas/writefreely WORKDIR /go/src/github.com/writeas/writefreely + COPY . . ENV GO111MODULE=on + RUN make build \ - && make ui + && make ui RUN mkdir /stage && \ cp -R /go/bin \ /go/src/github.com/writeas/writefreely/templates \ /go/src/github.com/writeas/writefreely/static \ /go/src/github.com/writeas/writefreely/pages \ /go/src/github.com/writeas/writefreely/keys \ /go/src/github.com/writeas/writefreely/cmd \ /stage # Final image -FROM alpine:3.11 +FROM alpine:3.12 RUN apk add --no-cache openssl ca-certificates COPY --from=build --chown=daemon:daemon /stage /go WORKDIR /go VOLUME /go/keys EXPOSE 8080 USER daemon ENTRYPOINT ["cmd/writefreely/writefreely"] diff --git a/config.ini.example b/config.ini.example deleted file mode 100644 index 8b74ddc..0000000 --- a/config.ini.example +++ /dev/null @@ -1,28 +0,0 @@ -[server] -hidden_host = -port = 8080 - -[database] -type = mysql -username = root -password = changeme -database = writefreely -host = db -port = 3306 -tls = false - -[app] -site_name = WriteFreely 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 -update_checks = true - diff --git a/docker-compose.yml b/docker-compose.yml index 29a841e..ef73a9b 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -1,32 +1,47 @@ version: "3" + +volumes: + web-keys: + db-data: + +networks: + external_writefreely: + internal_writefreely: + internal: true + services: - web: - build: . + writefreely-web: + container_name: "writefreely-web" + image: "writefreely:latest" + volumes: - - "web-data:/go/src/app" - - "./config.ini.example:/go/src/app/config.ini" + - "web-keys:/go/keys" + - "./config.ini:/go/config.ini" + + networks: + - "internal_writefreely" + - "external_writefreely" + ports: - "8080:8080" - networks: - - writefreely + depends_on: - - db + - "writefreely-db" + restart: unless-stopped - db: + + writefreely-db: + container_name: "writefreely-db" image: "mariadb:latest" + volumes: - - "./schema.sql:/tmp/schema.sql" - - db-data:/var/lib/mysql/data + - "db-data:/var/lib/mysql/data" + networks: - - writefreely + - "internal_writefreely" + environment: - MYSQL_DATABASE=writefreely - MYSQL_ROOT_PASSWORD=changeme - restart: unless-stopped -volumes: - web-data: - db-data: - -networks: - writefreely: + restart: unless-stopped