Update Dockerfile, add .dockerignore

This commit is contained in:
Matthew Penner 2020-12-15 15:58:47 -07:00
parent 199be20717
commit fafda283b1
3 changed files with 90 additions and 12 deletions

50
.dockerignore Normal file
View File

@ -0,0 +1,50 @@
# Binaries for programs and plugins
*.exe
*.dll
*.so
*.dylib
.idea/*
# Test binary, build with `go test -c`
*.test
# Output of the go coverage tool, specifically when used with LiteIDE
*.out
# Project-local glide cache, RE: https://github.com/Masterminds/glide/issues/736
.glide/
# dep related files and folders
/vendor*
# ignore logfiles (/* so the .gitkeep override works)
/logs/*
# ignore configuration file
/config.yml
# Ignore Vagrant stuff
/.vagrant
# Builds by gox
/build
# Go Coverage tool
/coverage.out
# The built executable
wings
wings.exe
# IDE/Editor files (VS Code)
/.vscode
# test files
test_*/
# Keep all gitkeep files (This needs to stay at the bottom)
!.gitkeep
debug
.DS_Store
*.pprof
*.pdf

3
.gitignore vendored
View File

@ -45,7 +45,6 @@ test_*/
# Keep all gitkeep files (This needs to stay at the bottom)
!.gitkeep
debug
data/.states.json
.DS_Store
*.pprof
*.pdf
*.pdf

View File

@ -1,11 +1,40 @@
FROM golang:1.15-alpine
ARG VERSION="develop"
COPY . /go/wings/
WORKDIR /go/wings/
RUN apk add --no-cache upx \
&& CGO_ENABLED=0 go build -ldflags="-s -w -X github.com/pterodactyl/wings/system.Version=${VERSION}" \
&& upx wings
# Stage 1 (Build)
FROM golang:1.15-alpine3.12 AS builder
FROM alpine:latest
COPY --from=0 /go/wings/wings /usr/bin/
CMD ["wings", "--config", "/etc/pterodactyl/config.yml"]
ARG VERSION
RUN apk add --update --no-cache git=2.26.2-r0 make=4.3-r0 upx=3.96-r0
WORKDIR /app/
COPY go.mod go.sum /app/
RUN go mod download
COPY . /app/
RUN CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build \
-ldflags="-s -w -X github.com/pterodactyl/wings/system.Version=$VERSION" \
-v \
-trimpath \
-o wings \
wings.go
RUN upx wings
# --------------------------------------- #
# Stage 2 (Final)
FROM busybox:1.32.0
LABEL org.opencontainers.image.title="Wings"
LABEL org.opencontainers.image.version="v1.1.3"
LABEL org.opencontainers.image.description="Server control layer for Pterodactyl"
LABEL org.opencontainers.image.url="https://pterodactyl.io"
LABEL org.opencontainers.image.documentation="https://pterodactyl.io/project/introduction.html"
LABEL org.opencontainers.image.vendor="Pterodactyl Software"
LABEL org.opencontainers.image.source="https://github.com/pterodactyl/wings"
LABEL org.opencontainers.image.licenses="MIT"
COPY --from=builder /app/wings /usr/bin/
CMD [ "wings", "--config", "/etc/pterodactyl/config.yml" ]