mirror of
https://github.com/woodpecker-ci/woodpecker.git
synced 2025-01-02 05:38:43 +00:00
Publish alpine container (#398)
* Enable build & publish of alpine docker container * Delete outdated BUILD file * Move Dockerfiles into subdir "docker" * Update & format Dockerfiles * Introduce "next" tag Co-authored-by: Anbraten <anton@ju60.de>
This commit is contained in:
parent
3837e03866
commit
e3354e440f
10 changed files with 98 additions and 94 deletions
|
@ -1,4 +0,0 @@
|
||||||
*
|
|
||||||
!release/*
|
|
||||||
.env
|
|
||||||
|
|
|
@ -50,16 +50,6 @@ pipeline:
|
||||||
- (cd web/; go generate ./...)
|
- (cd web/; go generate ./...)
|
||||||
- make release
|
- make release
|
||||||
|
|
||||||
# publish-server-alpine:
|
|
||||||
# image: plugins/docker
|
|
||||||
# repo: woodpeckerci/woodpecker-server
|
|
||||||
# dockerfile: Dockerfile.alpine
|
|
||||||
# secrets: [ docker_username, docker_password ]
|
|
||||||
# tag: [ alpine ]
|
|
||||||
# when:
|
|
||||||
# branch: master
|
|
||||||
# event: push
|
|
||||||
|
|
||||||
build-cli:
|
build-cli:
|
||||||
image: golang:1.16
|
image: golang:1.16
|
||||||
commands: make release-cli
|
commands: make release-cli
|
||||||
|
@ -67,8 +57,21 @@ pipeline:
|
||||||
publish-server:
|
publish-server:
|
||||||
image: plugins/docker
|
image: plugins/docker
|
||||||
repo: woodpeckerci/woodpecker-server
|
repo: woodpeckerci/woodpecker-server
|
||||||
|
dockerfile: docker/Dockerfile.server
|
||||||
secrets: [docker_username, docker_password]
|
secrets: [docker_username, docker_password]
|
||||||
tag: [latest]
|
# TODO: only release as next after 0.15.0 got released
|
||||||
|
tag: [next, latest]
|
||||||
|
when:
|
||||||
|
branch: master
|
||||||
|
event: push
|
||||||
|
|
||||||
|
publish-server-alpine:
|
||||||
|
image: plugins/docker
|
||||||
|
repo: woodpeckerci/woodpecker-server
|
||||||
|
dockerfile: docker/Dockerfile.server.alpine
|
||||||
|
secrets: [ docker_username, docker_password ]
|
||||||
|
# TODO: only release as next-alpine after 0.15.0 got released
|
||||||
|
tag: [next-alpine, latest-alpine]
|
||||||
when:
|
when:
|
||||||
branch: master
|
branch: master
|
||||||
event: push
|
event: push
|
||||||
|
@ -76,55 +79,58 @@ pipeline:
|
||||||
publish-agent:
|
publish-agent:
|
||||||
image: plugins/docker
|
image: plugins/docker
|
||||||
repo: woodpeckerci/woodpecker-agent
|
repo: woodpeckerci/woodpecker-agent
|
||||||
dockerfile: Dockerfile.agent
|
dockerfile: docker/Dockerfile.agent
|
||||||
secrets: [docker_username, docker_password]
|
secrets: [docker_username, docker_password]
|
||||||
tag: [latest]
|
# TODO: only release as next after 0.15.0 got released
|
||||||
|
tag: [next, latest]
|
||||||
when:
|
when:
|
||||||
branch: master
|
branch: master
|
||||||
event: push
|
event: push
|
||||||
|
|
||||||
# publish-agent-alpine:
|
publish-agent-alpine:
|
||||||
# image: plugins/docker
|
image: plugins/docker
|
||||||
# repo: woodpeckerci/woodpecker-agent
|
repo: woodpeckerci/woodpecker-agent
|
||||||
# dockerfile: Dockerfile.agent.alpine
|
dockerfile: docker/Dockerfile.agent.alpine
|
||||||
# secrets: [ docker_username, docker_password ]
|
secrets: [ docker_username, docker_password ]
|
||||||
# tag: [ alpine ]
|
# TODO: only release as next-alpine after 0.15.0 got released
|
||||||
# when:
|
tag: [next-alpine, latest-alpine]
|
||||||
# branch: master
|
when:
|
||||||
# event: push
|
branch: master
|
||||||
|
event: push
|
||||||
# release-server-alpine:
|
|
||||||
# image: plugins/docker
|
|
||||||
# repo: woodpeckerci/woodpecker-server
|
|
||||||
# dockerfile: Dockerfile.alpine
|
|
||||||
# secrets: [ docker_username, docker_password ]
|
|
||||||
# tag: "${DRONE_TAG}-alpine"
|
|
||||||
# when:
|
|
||||||
# event: tag
|
|
||||||
#
|
|
||||||
# release-agent-alpine:
|
|
||||||
# image: plugins/docker
|
|
||||||
# repo: woodpeckerci/woodpecker-agent
|
|
||||||
# dockerfile: Dockerfile.agent.alpine
|
|
||||||
# secrets: [ docker_username, docker_password ]
|
|
||||||
# tag: "${DRONE_TAG}-alpine"
|
|
||||||
# when:
|
|
||||||
# event: tag
|
|
||||||
|
|
||||||
release-server:
|
release-server:
|
||||||
image: plugins/docker
|
image: plugins/docker
|
||||||
repo: woodpeckerci/woodpecker-server
|
repo: woodpeckerci/woodpecker-server
|
||||||
|
dockerfile: docker/Dockerfile.server
|
||||||
secrets: [docker_username, docker_password]
|
secrets: [docker_username, docker_password]
|
||||||
tag: ${DRONE_TAG}
|
tag: [latest, "${DRONE_TAG}"]
|
||||||
|
when:
|
||||||
|
event: tag
|
||||||
|
|
||||||
|
release-server-alpine:
|
||||||
|
image: plugins/docker
|
||||||
|
repo: woodpeckerci/woodpecker-server
|
||||||
|
dockerfile: docker/Dockerfile.server.alpine
|
||||||
|
secrets: [ docker_username, docker_password ]
|
||||||
|
tag: [latest-alpine, "${DRONE_TAG}-alpine"]
|
||||||
when:
|
when:
|
||||||
event: tag
|
event: tag
|
||||||
|
|
||||||
release-agent:
|
release-agent:
|
||||||
image: plugins/docker
|
image: plugins/docker
|
||||||
repo: woodpeckerci/woodpecker-agent
|
repo: woodpeckerci/woodpecker-agent
|
||||||
dockerfile: Dockerfile.agent
|
dockerfile: docker/Dockerfile.agent
|
||||||
secrets: [docker_username, docker_password]
|
secrets: [docker_username, docker_password]
|
||||||
tag: ${DRONE_TAG}
|
tag: [latest, "${DRONE_TAG}"]
|
||||||
|
when:
|
||||||
|
event: tag
|
||||||
|
|
||||||
|
release-agent-alpine:
|
||||||
|
image: plugins/docker
|
||||||
|
repo: woodpeckerci/woodpecker-agent
|
||||||
|
dockerfile: docker/Dockerfile.agent.alpine
|
||||||
|
secrets: [ docker_username, docker_password ]
|
||||||
|
tag: [latest-alpine, "${DRONE_TAG}-alpine"]
|
||||||
when:
|
when:
|
||||||
event: tag
|
event: tag
|
||||||
|
|
||||||
|
|
19
BUILDING
19
BUILDING
|
@ -1,19 +0,0 @@
|
||||||
1. Install go 1.9 or later
|
|
||||||
2. Execute `make install` to compile project and install binaries to `GOPATH`
|
|
||||||
|
|
||||||
---
|
|
||||||
|
|
||||||
0. To generate SQL files
|
|
||||||
|
|
||||||
go get github.com/vektra/mockery/.../
|
|
||||||
|
|
||||||
export download_url=$(curl -s https://api.github.com/repos/go-swagger/go-swagger/releases/latest | \
|
|
||||||
jq -r '.assets[] | select(.name | contains("'"$(uname | tr '[:upper:]' '[:lower:]')"'_amd64")) | .browser_download_url')
|
|
||||||
curl -o swagger -L'#' "$download_url"
|
|
||||||
chmod +x swagger
|
|
||||||
sudo mv swagger /usr/local/bin
|
|
||||||
|
|
||||||
go get github.com/woodpecker-ci/togo
|
|
||||||
|
|
||||||
go generate
|
|
||||||
|
|
13
Dockerfile
13
Dockerfile
|
@ -1,13 +0,0 @@
|
||||||
# docker build --rm -t woodpeckerci/woodpecker-server .
|
|
||||||
|
|
||||||
FROM drone/ca-certs
|
|
||||||
EXPOSE 8000 9000 80 443
|
|
||||||
|
|
||||||
ENV GODEBUG=netdns=go
|
|
||||||
ENV WOODPECKER_DATABASE_DATASOURCE=/var/lib/drone/drone.sqlite
|
|
||||||
ENV WOODPECKER_DATABASE_DRIVER=sqlite3
|
|
||||||
ENV XDG_CACHE_HOME=/var/lib/drone
|
|
||||||
|
|
||||||
ADD release/woodpecker-server /bin/
|
|
||||||
|
|
||||||
ENTRYPOINT ["/bin/woodpecker-server"]
|
|
|
@ -1,10 +0,0 @@
|
||||||
# docker build --rm -f Dockerfile.agent -t woodpeckerci/woodpecker-agent .
|
|
||||||
|
|
||||||
FROM drone/ca-certs
|
|
||||||
ENV GODEBUG=netdns=go
|
|
||||||
ADD release/woodpecker-agent /bin/
|
|
||||||
|
|
||||||
EXPOSE 3000
|
|
||||||
HEALTHCHECK CMD ["/bin/woodpecker-agent", "ping"]
|
|
||||||
|
|
||||||
ENTRYPOINT ["/bin/woodpecker-agent"]
|
|
17
docker/Dockerfile.agent
Normal file
17
docker/Dockerfile.agent
Normal file
|
@ -0,0 +1,17 @@
|
||||||
|
# docker build --rm -f docker/Dockerfile.agent -t woodpeckerci/woodpecker-agent .
|
||||||
|
|
||||||
|
# use golang image to copy ssl certs later
|
||||||
|
FROM golang:1.16
|
||||||
|
|
||||||
|
FROM scratch
|
||||||
|
|
||||||
|
# copy certs from golang:1.16 image
|
||||||
|
COPY --from=0 /etc/ssl/certs/ca-certificates.crt /etc/ssl/certs/ca-certificates.crt
|
||||||
|
|
||||||
|
ENV GODEBUG=netdns=go
|
||||||
|
ADD release/woodpecker-agent /bin/
|
||||||
|
|
||||||
|
EXPOSE 3000
|
||||||
|
HEALTHCHECK CMD ["/bin/woodpecker-agent", "ping"]
|
||||||
|
|
||||||
|
ENTRYPOINT ["/bin/woodpecker-agent"]
|
|
@ -1,5 +1,6 @@
|
||||||
FROM alpine:3.9.4
|
# docker build --rm -f docker/Dockerfile.agent.alpine -t woodpeckerci/woodpecker-agent .
|
||||||
|
|
||||||
|
FROM alpine:3.14
|
||||||
RUN apk add -U --no-cache ca-certificates
|
RUN apk add -U --no-cache ca-certificates
|
||||||
|
|
||||||
ENV GODEBUG=netdns=go
|
ENV GODEBUG=netdns=go
|
||||||
|
@ -9,4 +10,3 @@ EXPOSE 3000
|
||||||
HEALTHCHECK CMD ["/bin/woodpecker-agent", "ping"]
|
HEALTHCHECK CMD ["/bin/woodpecker-agent", "ping"]
|
||||||
|
|
||||||
ENTRYPOINT ["/bin/woodpecker-agent"]
|
ENTRYPOINT ["/bin/woodpecker-agent"]
|
||||||
|
|
20
docker/Dockerfile.server
Normal file
20
docker/Dockerfile.server
Normal file
|
@ -0,0 +1,20 @@
|
||||||
|
# docker build --rm -f docker/Dockerfile.server -t woodpeckerci/woodpecker-server .
|
||||||
|
|
||||||
|
# use golang image to copy ssl certs later
|
||||||
|
FROM golang:1.16
|
||||||
|
|
||||||
|
FROM scratch
|
||||||
|
|
||||||
|
# copy certs from golang:1.16 image
|
||||||
|
COPY --from=0 /etc/ssl/certs/ca-certificates.crt /etc/ssl/certs/ca-certificates.crt
|
||||||
|
|
||||||
|
EXPOSE 8000 9000 80 443
|
||||||
|
|
||||||
|
ENV GODEBUG=netdns=go
|
||||||
|
ENV WOODPECKER_DATABASE_DATASOURCE=/var/lib/drone/drone.sqlite
|
||||||
|
ENV WOODPECKER_DATABASE_DRIVER=sqlite3
|
||||||
|
ENV XDG_CACHE_HOME=/var/lib/drone
|
||||||
|
|
||||||
|
ADD release/woodpecker-server /bin/
|
||||||
|
|
||||||
|
ENTRYPOINT ["/bin/woodpecker-server"]
|
|
@ -1,8 +1,10 @@
|
||||||
FROM alpine:3.9.4
|
# docker build --rm -f docker/Dockerfile.server.alpine -t woodpeckerci/woodpecker-server .
|
||||||
EXPOSE 8000 9000 80 443
|
|
||||||
|
|
||||||
|
FROM alpine:3.14
|
||||||
RUN apk add -U --no-cache ca-certificates
|
RUN apk add -U --no-cache ca-certificates
|
||||||
|
|
||||||
|
EXPOSE 8000 9000 80 443
|
||||||
|
|
||||||
ENV GODEBUG=netdns=go
|
ENV GODEBUG=netdns=go
|
||||||
ENV WOODPECKER_DATABASE_DATASOURCE=/var/lib/drone/drone.sqlite
|
ENV WOODPECKER_DATABASE_DATASOURCE=/var/lib/drone/drone.sqlite
|
||||||
ENV WOODPECKER_DATABASE_DRIVER=sqlite3
|
ENV WOODPECKER_DATABASE_DRIVER=sqlite3
|
|
@ -6,6 +6,11 @@
|
||||||
|
|
||||||
## Docker images
|
## Docker images
|
||||||
|
|
||||||
|
Image variants:
|
||||||
|
* The `next` version is based on the current master branch
|
||||||
|
* The `latest` is same as next (will change after v0.15.0 release to be latest stable release)
|
||||||
|
* The `x.x.x` version images are stable releases
|
||||||
|
|
||||||
``` bash
|
``` bash
|
||||||
# server
|
# server
|
||||||
docker pull woodpeckerci/woodpecker-server:latest
|
docker pull woodpeckerci/woodpecker-server:latest
|
||||||
|
@ -15,7 +20,7 @@ docker pull woodpeckerci/woodpecker-server:latest-alpine
|
||||||
docker pull woodpeckerci/woodpecker-agent:latest
|
docker pull woodpeckerci/woodpecker-agent:latest
|
||||||
docker pull woodpeckerci/woodpecker-agent:latest-alpine
|
docker pull woodpeckerci/woodpecker-agent:latest-alpine
|
||||||
|
|
||||||
# cli
|
# TODO: cli
|
||||||
docker pull woodpeckerci/woodpecker-cli:latest
|
docker pull woodpeckerci/woodpecker-cli:latest
|
||||||
docker pull woodpeckerci/woodpecker-cli:latest-alpine
|
docker pull woodpeckerci/woodpecker-cli:latest-alpine
|
||||||
```
|
```
|
||||||
|
|
Loading…
Reference in a new issue