diff --git a/.goxc.json b/.goxc.json deleted file mode 100644 index 00fcec6..0000000 --- a/.goxc.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "ArtifactsDest": "", - "Resources": {}, - "PackageVersion": "0.2", - "BranchName": "master", - "FormatVersion": "0.8", - "TaskSettings": { - "downloads-page": { - "filename" : "index.html", - "outputFormat" : "by-file-extension", - "templateFile" : "downloads-page-template.html" - } - } -} diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..ec9c00a --- /dev/null +++ b/Dockerfile @@ -0,0 +1,42 @@ +FROM golang:1.7 + +ENV goup_version 0.2.1 + +# install fpm +RUN apt-get update \ + && apt-get install -y --no-install-recommends \ + ruby \ + ruby-dev \ + gcc \ + make \ + rpm \ + && rm -rf /var/lib/apt/lists/* \ + && gem install fpm + +# install govendor +RUN wget --no-verbose -O /usr/local/bin/govendor https://github.com/kardianos/govendor/releases/download/v1.0.8/govendor_linux_amd64 \ + && chmod +x /usr/local/bin/govendor + +# create volume for files and directories to be served by Goup +RUN mkdir /data +VOLUME /data + +# create directory for Goup binary and packages +RUN mkdir /builds + +# build Goup +RUN mkdir -p /go/src/goup +WORKDIR /go/src/goup +COPY . /go/src/goup +RUN govendor sync +RUN go build -o /builds/goup -ldflags "-X main.VERSION=$goup_version" -v . + +# create DEB and RPM packages +WORKDIR /builds +RUN fpm -s dir -t deb --name goup --version $goup_version ./goup=/usr/local/bin/goup +RUN fpm -s dir -t rpm --name goup --version $goup_version ./goup=/usr/local/bin/goup + +EXPOSE 4000 + +WORKDIR /go/src/goup +CMD ["go-wrapper", "run", "-dir", "/data"] diff --git a/Makefile b/Makefile new file mode 100644 index 0000000..99bcf06 --- /dev/null +++ b/Makefile @@ -0,0 +1,14 @@ +GOUP_IMAGE ?= goup +GOUP_PORT ?= 4000 +GOUP_DIR ?= $(PWD) + +image: + docker build --tag $(GOUP_IMAGE) . + +builds: image + GOUP_CONTAINER=$$(docker create $(GOUP_IMAGE)) && \ + docker cp $$GOUP_CONTAINER:/builds . ; \ + docker rm $$GOUP_CONTAINER + +run: image + docker run --rm -v $(GOUP_DIR):/data -p $(GOUP_PORT):4000 $(GOUP_IMAGE)