diff --git a/Dockerfile b/Dockerfile index fd6589d..3634846 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,35 +1,44 @@ # 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 +ENV softwareVer=docker +#Build +RUN go-bindata -pkg writefreely -ignore=\\.gitignore schema.sql sqlite.sql +RUN go get -d -v ./... +RUN go build -ldflags="-X github.com/writeas/writefreely.softwareVer=${softwareVer}" -v ./cmd/writefreely/ + +# UI +RUN lessc ./less/app.less --clean-css="--s1 --advanced" ../static/css/write.css +RUN lessc ./less/fonts.less --clean-css="--s1 --advanced" ../static/css/fonts.css +RUN lessc ./less/icons.less --clean-css="--s1 --advanced" ../static/css/icons.css + 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.docker b/config.ini.docker new file mode 100644 index 0000000..e30213c --- /dev/null +++ b/config.ini.docker @@ -0,0 +1,28 @@ +[server] +hidden_host = +port = 8080 + +[database] +type = mysql +username = root +password = writefreely +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 = false +open_registration = true +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..abb869b 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -1,32 +1,35 @@ version: "3" services: + web: build: . + entrypoint: ls -lA volumes: - - "web-data:/go/src/app" - - "./config.ini.example:/go/src/app/config.ini" + - ./web-data/:/go/src/app + - ./config.ini.docker:/go/cmd/writefreely/config.ini ports: - "8080:8080" networks: - - writefreely + - external_writefreely + - internal_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 + image: mariadb:10 + command: mysqld --character-set-server=latin1 --collation-server=latin1_swedish_ci environment: - MYSQL_DATABASE=writefreely - - MYSQL_ROOT_PASSWORD=changeme + - MYSQL_ROOT_PASSWORD=writefreely + volumes: + - ./schema.sql:/tmp/schema.sql + - ./Mariadb/:/var/lib/mysql + networks: + - internal_writefreely restart: unless-stopped -volumes: - web-data: - db-data: - networks: - writefreely: + external_writefreely: + internal_writefreely: + internal: true