Browse Source

Merge pull request #188 from matrix-org/rob/docker

Dockerfile and docker image build script
pull/193/head
Robert Swain 7 years ago
committed by GitHub
parent
commit
79131f19c2
  1. 10
      Dockerfile
  2. 13
      README.md
  3. 12
      build-docker-image.sh

10
Dockerfile

@ -0,0 +1,10 @@
FROM alpine:3.6
ENV BIND_ADDRESS=:4050 DATABASE_TYPE=sqlite3 DATABASE_URL=/data/go-neb.db?_busy_timeout=5000
COPY bin/go-neb /go-neb
VOLUME /data
EXPOSE 4050
ENTRYPOINT ["/go-neb"]

13
README.md

@ -222,3 +222,16 @@ GOPATH=$GOPATH:$(pwd) godoc -v -http=localhost:6060 &
# Open up the documentation for go-neb in a browser.
sensible-browser http://localhost:6060/pkg/github.com/matrix-org/go-neb
```
## Docker image
There is a `Dockerfile` in the root of the repository and a `build-docker-image.sh` script that uses an alpine-based golang container to build `go-neb` (note that this will overwrite host-built binaries in `pkg/` and `bin/`) and then builds the docker image using that binary.
The image sets the following environment variables:
```
BIND_ADDRESS=:4050
DATABASE_TYPE=sqlite3
DATABASE_URL=/data/go-neb.db?_busy_timeout=5000
```
The image exposes port `4050` and a volume at `/data`. The `BASE_URL` environment variable needs to be set, a volume should be mounted at `/data` and port `4050` should be appropriately mapped as desired.

12
build-docker-image.sh

@ -0,0 +1,12 @@
#!/bin/bash
set -e
docker run \
--rm \
-v "$PWD":/usr/src/myapp \
-w /usr/src/myapp \
golang:1.8-alpine \
sh -c 'apk add --no-cache git gcc musl-dev && go get -u github.com/constabulary/gb/... && gb build -f github.com/matrix-org/go-neb'
docker build -t ${IMAGE_PREFIX}go-neb:latest .
Loading…
Cancel
Save