diff --git a/.travis.yml b/.travis.yml index ce8d253..1844167 100644 --- a/.travis.yml +++ b/.travis.yml @@ -7,7 +7,9 @@ addons: - rpm env: - - DEPLOY_WITH_MAJOR="1.10" + global: + - GO111MODULE=on + - DEPLOY_WITH_MAJOR="1.11" before_script: - go get golang.org/x/lint/golint diff --git a/CHANGELOG.md b/CHANGELOG.md index 8e95406..24b7a16 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -8,8 +8,12 @@ This project adheres to [Semantic Versioning](http://semver.org/). ## [Unreleased] ### Added +- Use Go 1.11 modules for reproducible builds. - SMTP TLS support (thanks kingforaday.) +### Changed +- Docker build now uses Go 1.11 and Alpine 3.8 + ## [v2.0.0] - 2018-05-05 diff --git a/Dockerfile b/Dockerfile index 9a1e0b9..0bc28fc 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,9 +1,9 @@ # Docker build file for Inbucket: https://www.inbucket.org/ # Build -FROM golang:1.10-alpine as builder +FROM golang:1.11-alpine3.8 as builder RUN apk add --no-cache --virtual .build-deps git make -WORKDIR /go/src/github.com/jhillyerd/inbucket +WORKDIR /build COPY . . ENV CGO_ENABLED 0 RUN make clean deps @@ -12,11 +12,10 @@ RUN go build -o inbucket \ -v ./cmd/inbucket # Run in minimal image -FROM alpine:3.7 -ENV SRC /go/src/github.com/jhillyerd/inbucket +FROM alpine:3.8 WORKDIR /opt/inbucket RUN mkdir bin defaults ui -COPY --from=builder $SRC/inbucket bin +COPY --from=builder /build/inbucket bin COPY etc/docker/defaults/greeting.html defaults COPY ui ui COPY etc/docker/defaults/start-inbucket.sh / diff --git a/etc/docker/docker-run.sh b/etc/docker/docker-run.sh index 442f2fe..26c020c 100755 --- a/etc/docker/docker-run.sh +++ b/etc/docker/docker-run.sh @@ -12,9 +12,9 @@ PORT_POP3=1100 # Volumes exposed on host: VOL_CONFIG="/tmp/inbucket/config" -VOL_DATA="/tmp/inbucket/data" +VOL_DATA="/tmp/inbucket/storage" -set -eo pipefail +set -e main() { local run_opts="" @@ -39,11 +39,11 @@ main() { done docker run $run_opts \ - -p $PORT_HTTP:10080 \ - -p $PORT_SMTP:10025 \ - -p $PORT_POP3:10110 \ - -v "$VOL_CONFIG:/con/configuration" \ - -v "$VOL_DATA:/con/data" \ + -p $PORT_HTTP:9000 \ + -p $PORT_SMTP:2500 \ + -p $PORT_POP3:1100 \ + -v "$VOL_CONFIG:/config" \ + -v "$VOL_DATA:/storage" \ "$IMAGE" } diff --git a/go.mod b/go.mod new file mode 100644 index 0000000..4291717 --- /dev/null +++ b/go.mod @@ -0,0 +1,18 @@ +module github.com/jhillyerd/inbucket + +require ( + github.com/davecgh/go-spew v1.1.1 // indirect + github.com/google/subcommands v0.0.0-20181012225330-46f0354f6315 + github.com/gorilla/css v1.0.0 + github.com/gorilla/mux v1.6.2 + github.com/gorilla/securecookie v1.1.1 + github.com/gorilla/sessions v1.1.3 + github.com/gorilla/websocket v1.4.0 + github.com/jhillyerd/enmime v0.2.1 + github.com/kelseyhightower/envconfig v1.3.0 + github.com/microcosm-cc/bluemonday v1.0.1 + github.com/pmezard/go-difflib v1.0.0 // indirect + github.com/rs/zerolog v1.9.1 + github.com/stretchr/testify v1.2.2 + golang.org/x/net v0.0.0-20181017193950-04a2e542c03f +) diff --git a/go.sum b/go.sum new file mode 100644 index 0000000..7b3fe17 --- /dev/null +++ b/go.sum @@ -0,0 +1,40 @@ +github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= +github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= +github.com/google/subcommands v0.0.0-20181012225330-46f0354f6315 h1:WW91Hq2v0qDzoPME+TPD4En72+d2Ue3ZMKPYfwR9yBU= +github.com/google/subcommands v0.0.0-20181012225330-46f0354f6315/go.mod h1:ZjhPrFU+Olkh9WazFPsl27BQ4UPiG37m3yTrtFlrHVk= +github.com/gorilla/context v1.1.1 h1:AWwleXJkX/nhcU9bZSnZoi3h/qGYqQAGhq6zZe/aQW8= +github.com/gorilla/context v1.1.1/go.mod h1:kBGZzfjB9CEq2AlWe17Uuf7NDRt0dE0s8S51q0aT7Yg= +github.com/gorilla/css v1.0.0 h1:BQqNyPTi50JCFMTw/b67hByjMVXZRwGha6wxVGkeihY= +github.com/gorilla/css v1.0.0/go.mod h1:Dn721qIggHpt4+EFCcTLTU/vk5ySda2ReITrtgBl60c= +github.com/gorilla/mux v1.6.2 h1:Pgr17XVTNXAk3q/r4CpKzC5xBM/qW1uVLV+IhRZpIIk= +github.com/gorilla/mux v1.6.2/go.mod h1:1lud6UwP+6orDFRuTfBEV8e9/aOM/c4fVVCaMa2zaAs= +github.com/gorilla/securecookie v1.1.1 h1:miw7JPhV+b/lAHSXz4qd/nN9jRiAFV5FwjeKyCS8BvQ= +github.com/gorilla/securecookie v1.1.1/go.mod h1:ra0sb63/xPlUeL+yeDciTfxMRAA+MP+HVt/4epWDjd4= +github.com/gorilla/sessions v1.1.3 h1:uXoZdcdA5XdXF3QzuSlheVRUvjl+1rKY7zBXL68L9RU= +github.com/gorilla/sessions v1.1.3/go.mod h1:8KCfur6+4Mqcc6S0FEfKuN15Vl5MgXW92AE8ovaJD0w= +github.com/gorilla/websocket v1.4.0 h1:WDFjx/TMzVgy9VdMMQi2K2Emtwi2QcUQsztZ/zLaH/Q= +github.com/gorilla/websocket v1.4.0/go.mod h1:E7qHFY5m1UJ88s3WnNqhKjPHQ0heANvMoAMk2YaljkQ= +github.com/jaytaylor/html2text v0.0.0-20180606194806-57d518f124b0 h1:xqgexXAGQgY3HAjNPSaCqn5Aahbo5TKsmhp8VRfr1iQ= +github.com/jaytaylor/html2text v0.0.0-20180606194806-57d518f124b0/go.mod h1:CVKlgaMiht+LXvHG173ujK6JUhZXKb2u/BQtjPDIvyk= +github.com/jhillyerd/enmime v0.2.1 h1:YodBfMH3jmrZn68Gg4ZoZH1ECDsdh8BLW9+DjoFce6o= +github.com/jhillyerd/enmime v0.2.1/go.mod h1:0gWUCFBL87cvx6/MSSGNBHJ6r+fMArqltDFwHxC10P4= +github.com/kelseyhightower/envconfig v1.3.0 h1:IvRS4f2VcIQy6j4ORGIf9145T/AsUB+oY8LyvN8BXNM= +github.com/kelseyhightower/envconfig v1.3.0/go.mod h1:cccZRl6mQpaq41TPp5QxidR+Sa3axMbJDNb//FQX6Gg= +github.com/mattn/go-runewidth v0.0.3 h1:a+kO+98RDGEfo6asOGMmpodZq4FNtnGP54yps8BzLR4= +github.com/mattn/go-runewidth v0.0.3/go.mod h1:LwmH8dsx7+W8Uxz3IHJYH5QSwggIsqBzpuz5H//U1FU= +github.com/microcosm-cc/bluemonday v1.0.1 h1:SIYunPjnlXcW+gVfvm0IlSeR5U3WZUOLfVmqg85Go44= +github.com/microcosm-cc/bluemonday v1.0.1/go.mod h1:hsXNsILzKxV+sX77C5b8FSuKF00vh2OMYv+xgHpAMF4= +github.com/olekukonko/tablewriter v0.0.0-20180912035003-be2c049b30cc h1:rQ1O4ZLYR2xXHXgBCCfIIGnuZ0lidMQw2S5n1oOv+Wg= +github.com/olekukonko/tablewriter v0.0.0-20180912035003-be2c049b30cc/go.mod h1:vsDQFd/mU46D+Z4whnwzcISnGGzXWMclvtLoiIKAKIo= +github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= +github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= +github.com/rs/zerolog v1.9.1 h1:AjV/SFRF0+gEa6rSjkh0Eji/DnkrJKVpPho6SW5g4mU= +github.com/rs/zerolog v1.9.1/go.mod h1:YbFCdg8HfsridGWAh22vktObvhZbQsZXe4/zB0OKkWU= +github.com/ssor/bom v0.0.0-20170718123548-6386211fdfcf h1:pvbZ0lM0XWPBqUKqFU8cmavspvIl9nulOYwdy6IFRRo= +github.com/ssor/bom v0.0.0-20170718123548-6386211fdfcf/go.mod h1:RJID2RhlZKId02nZ62WenDCkgHFerpIOmW0iT7GKmXM= +github.com/stretchr/testify v1.2.2 h1:bSDNvY7ZPG5RlJ8otE/7V6gMiyenm9RtJ7IUVIAoJ1w= +github.com/stretchr/testify v1.2.2/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs= +golang.org/x/net v0.0.0-20181017193950-04a2e542c03f h1:4pRM7zYwpBjCnfA1jRmhItLxYJkaEnsmuAcRtA347DA= +golang.org/x/net v0.0.0-20181017193950-04a2e542c03f/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= +golang.org/x/text v0.3.0 h1:g61tztE5qeGQ89tm6NTjjM9VPIm088od1l6aSorWRWg= +golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=