Merge pull request #7 from pldubouilh/docker

new dockerfile things
This commit is contained in:
Pierre Dubouilh 2018-12-23 00:12:11 +00:00 committed by GitHub
commit e4ff35d78b
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
7 changed files with 65 additions and 11 deletions

View file

@ -1,4 +0,0 @@
FROM alpine
EXPOSE 8001
COPY gossa /gossa
ENTRYPOINT [ "/gossa", "-h", "0.0.0.0", "/shared" ]

View file

@ -26,7 +26,7 @@ ci-watch:
build-all:
make embed
env GOOS=linux GOARCH=amd64 go build gossa.go
env CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build gossa.go
mv gossa gossa-linux64
env GOOS=linux GOARCH=arm go build gossa.go
mv gossa gossa-linux-arm

8
docker/build.Dockerfile Normal file
View file

@ -0,0 +1,8 @@
FROM golang:latest as builder
COPY . /gossaSrc
RUN cd /gossaSrc && make
FROM alpine
EXPOSE 8001
COPY --from=builder /gossaSrc/gossa /gossa
ENTRYPOINT [ "/gossa", "-h", "0.0.0.0", "/shared" ]

22
docker/caddy.Dockerfile Normal file
View file

@ -0,0 +1,22 @@
FROM alpine
# download and prepare caddy
RUN apk update && apk add curl ca-certificates
RUN curl -L -o caddy.tar.gz "https://github.com/mholt/caddy/releases/download/v0.11.1/caddy_v0.11.1_linux_amd64.tar.gz"
RUN tar xvzf caddy.tar.gz && mv caddy /caddy
# download and prepare gossa
RUN curl -L -o /gossa "https://github.com/pldubouilh/gossa/releases/download/v0.0.4/gossa-linux64"
RUN chmod +x /gossa /caddy
# Caddy config:
# * http basic auth is implemented here, with bob as user and dylan as password
# * to enable https just set a valid domain instead of *:8001 - how simple !
RUN echo -e '\n\
*:8001\n\
basicauth / bob dylan\n\
proxy / 127.0.0.1:8000\n\
'>> /Caddyfile
RUN echo -e '/gossa -h 127.0.0.1 -p 8000 /shared & \n /caddy'>> /start.sh
ENTRYPOINT [ "sh", "/start.sh" ]

View file

@ -0,0 +1,5 @@
FROM alpine
EXPOSE 8001
RUN wget https://github.com/pldubouilh/gossa/releases/download/v0.0.4/gossa-linux64 && mv gossa-linux64 /gossa && chmod +x /gossa
ENTRYPOINT [ "/gossa", "-h", "0.0.0.0", "/shared" ]

22
docker/readme.md Normal file
View file

@ -0,0 +1,22 @@
```sh
# download latest gossa release
docker build -t gossa -f download.Dockerfile .
# ... or build gossa within a build container, needs to be ran within the sources, ../ from here
docker build -t gossa -f docker/build.Dockerfile .
# and to run it simply
sudo docker run -v ~/LocalDirToShare:/shared -p 8001:8001 gossa
```
a fancy docker image using [Caddy](https://caddyserver.com/) is also provided. a simple config is embedded in the docker file, and shows how to use http basic authentication, and automatic TLS for hands-free https 🎉
```sh
# run with caddy, checkout the config in the dockerfile
docker build -t gossa -f caddy.Dockerfile .
# run with caddy
sudo docker run -v ~/LocalDirToShare:/shared --net=host gossa
```

View file

@ -52,13 +52,14 @@ make
|drag-and-drop external item | upload file/folders|
### using with docker
a pretty short docker file is provided
multiple dockerfiles are provided in the `docker` folder. to simply get started just have a look below
```sh
# build docker image
make
docker build -t gossa .
# build
cd docker
docker build -t gossa -f download .
# run
sudo docker run -v ~/ToShare:/shared -p 8001:8001 gossa
```
sudo docker run -v ~/LocalDirToShare:/shared -p 8001:8001 gossa
```