replaced .travis.yml with multistage Docker build
This commit is contained in:
parent
ddb4f49cf7
commit
2619e02988
3 changed files with 24 additions and 27 deletions
27
.travis.yml
27
.travis.yml
|
@ -1,27 +0,0 @@
|
|||
language: go
|
||||
|
||||
# Force-enable Go modules. This will be unnecessary when Go 1.12 lands.
|
||||
env:
|
||||
- GO111MODULE=on
|
||||
|
||||
# You don't need to test on very old version of the Go compiler. It's the user's
|
||||
# responsibility to keep their compilers up to date.
|
||||
go:
|
||||
- 1.11.x
|
||||
|
||||
# Only clone the most recent commit.
|
||||
git:
|
||||
depth: 1
|
||||
|
||||
# Skip the install step. Don't `go get` dependencies. Only build with the code
|
||||
# in vendor/
|
||||
install: true
|
||||
|
||||
notifications:
|
||||
email: false
|
||||
|
||||
before_script:
|
||||
- go install -mod vendor github.com/mitchellh/gox
|
||||
|
||||
script:
|
||||
- gox -output="hetzner-sb-notifier_{{.OS}}_{{.Arch}}"
|
20
Dockerfile
Normal file
20
Dockerfile
Normal file
|
@ -0,0 +1,20 @@
|
|||
FROM golang:alpine as builder
|
||||
|
||||
RUN apk update && apk add git && apk add ca-certificates
|
||||
RUN adduser -D -g '' appuser
|
||||
RUN mkdir /hetzner-sb-notifier
|
||||
COPY . /hetzner-sb-notifier/
|
||||
WORKDIR /hetzner-sb-notifier
|
||||
|
||||
ENV VERSION=1.0
|
||||
RUN chmod +x build.sh
|
||||
|
||||
RUN /hetzner-sb-notifier/build.sh linux
|
||||
|
||||
FROM scratch
|
||||
COPY --from=builder /etc/ssl/certs/ca-certificates.crt /etc/ssl/certs/
|
||||
COPY --from=builder /etc/passwd /etc/passwd
|
||||
COPY --from=builder /hetzner-sb-notifier/build/hetzner-sb-notifier_linux_amd64 /hetzner-sb-notifier
|
||||
RUN chmod +x hetzner-sb-notifier
|
||||
USER appuser
|
||||
ENTRYPOINT ["/hetzner-sb-notifier"]
|
4
build.sh
Normal file
4
build.sh
Normal file
|
@ -0,0 +1,4 @@
|
|||
GO111MODULE=on
|
||||
go get github.com/mitchellh/gox
|
||||
go get ./...
|
||||
gox -output="build/hetzner-sb-notifier_{{.OS}}_{{.Arch}}_${VERSION}" -osarch=$1/amd64
|
Reference in a new issue