[test] Multistage build with drone CI
All checks were successful
continuous-integration/drone/push Build is passing
All checks were successful
continuous-integration/drone/push Build is passing
This commit is contained in:
parent
c404adcfcd
commit
6bc22c2b6b
38
.drone.yml
38
.drone.yml
@ -28,7 +28,43 @@ steps:
|
|||||||
volumes:
|
volumes:
|
||||||
- name: gopath
|
- name: gopath
|
||||||
path: /go
|
path: /go
|
||||||
|
|
||||||
|
- name: build_image
|
||||||
|
image: plugins/docker
|
||||||
|
commands:
|
||||||
|
- p1=$(echo $CI_COMMIT_BRANCH | cut -d '/' -f1) &&
|
||||||
|
p2=$(echo $CI_COMMIT_BRANCH | cut -d '/' -f2) &&
|
||||||
|
docker build -t git.pbiernat.dev/golang/vegvisir:$p1-$p2 -f Dockerfile.build .
|
||||||
|
volumes:
|
||||||
|
- name: docker-sock
|
||||||
|
path: /var/run
|
||||||
|
|
||||||
|
- name: push_image
|
||||||
|
image: plugins/docker
|
||||||
|
environment:
|
||||||
|
DOCKER_USERNAME:
|
||||||
|
from_secret: registry_username
|
||||||
|
DOCKER_PASSWORD:
|
||||||
|
from_secret: registry_password
|
||||||
|
commands:
|
||||||
|
- p1=$(echo $CI_COMMIT_BRANCH | cut -d '/' -f1) &&
|
||||||
|
p2=$(echo $CI_COMMIT_BRANCH | cut -d '/' -f2) &&
|
||||||
|
docker login git.pbiernat.dev -u $DOCKER_USERNAME -p $DOCKER_PASSWORD &&
|
||||||
|
docker push git.pbiernat.dev/golang/vegvisir:$p1-$p2
|
||||||
|
volumes:
|
||||||
|
- name: docker-sock
|
||||||
|
path: /var/run
|
||||||
|
|
||||||
|
services:
|
||||||
|
- name: docker
|
||||||
|
image: docker:dind
|
||||||
|
privileged: true
|
||||||
|
volumes:
|
||||||
|
- name: docker-sock
|
||||||
|
path: /var/run
|
||||||
|
|
||||||
volumes:
|
volumes:
|
||||||
- name: gopath
|
- name: gopath
|
||||||
temp: {}
|
temp: {}
|
||||||
|
- name: docker-sock
|
||||||
|
temp: {}
|
||||||
|
11
Dockerfile
11
Dockerfile
@ -1,11 +0,0 @@
|
|||||||
FROM golang:1.16-alpine
|
|
||||||
|
|
||||||
RUN mkdir /go/src/vegvisir
|
|
||||||
WORKDIR /go/src/vegvisir
|
|
||||||
|
|
||||||
COPY vegvisir.json go.mod go.sum ./
|
|
||||||
COPY pkg/ ./pkg
|
|
||||||
|
|
||||||
RUN go mod download
|
|
||||||
|
|
||||||
CMD ["go", "run", "pkg/main.go"]
|
|
22
Dockerfile.build
Normal file
22
Dockerfile.build
Normal file
@ -0,0 +1,22 @@
|
|||||||
|
# Builder
|
||||||
|
FROM golang:alpine AS builder
|
||||||
|
|
||||||
|
WORKDIR /go/src/app
|
||||||
|
|
||||||
|
ARG MAIN_GO=pkg/main.go
|
||||||
|
# ARG HTTP_PORT=8080
|
||||||
|
# ENV HTTP_PORT {$HTTP_PORT}
|
||||||
|
|
||||||
|
COPY go.mod go.sum ./
|
||||||
|
COPY pkg ./pkg
|
||||||
|
|
||||||
|
RUN go mod download && \
|
||||||
|
CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build -ldflags="-w -s" -o /go/bin/app $MAIN_GO
|
||||||
|
|
||||||
|
# Destination image
|
||||||
|
FROM gcr.io/distroless/base-debian10
|
||||||
|
|
||||||
|
COPY --from=builder /go/bin/app /app
|
||||||
|
|
||||||
|
EXPOSE $HTTP_PORT
|
||||||
|
ENTRYPOINT ["/app"]
|
11
Dockerfile.run
Normal file
11
Dockerfile.run
Normal file
@ -0,0 +1,11 @@
|
|||||||
|
FROM golang:alpine
|
||||||
|
|
||||||
|
# RUN mkdir /go/src/app
|
||||||
|
WORKDIR /go/src/app
|
||||||
|
|
||||||
|
COPY go.mod go.sum ./
|
||||||
|
COPY pkg ./
|
||||||
|
|
||||||
|
RUN go mod download
|
||||||
|
|
||||||
|
ENTRYPOINT ["go", "run", "pkg/main.go"]
|
19
vegvisir.json.test
Normal file
19
vegvisir.json.test
Normal file
@ -0,0 +1,19 @@
|
|||||||
|
{
|
||||||
|
"server": {
|
||||||
|
"address": "127.0.0.1",
|
||||||
|
"port": 8080
|
||||||
|
},
|
||||||
|
"backends": {
|
||||||
|
"dummy-app": {
|
||||||
|
"prefixURL": "/",
|
||||||
|
"backendAddress": "http://172.17.0.1:80",
|
||||||
|
"routes": [{
|
||||||
|
"pattern": "(.+)",
|
||||||
|
"target": "$1"
|
||||||
|
}]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"cache": {
|
||||||
|
"type": "memory"
|
||||||
|
}
|
||||||
|
}
|
Loading…
Reference in New Issue
Block a user