Skip to content

Commit

Permalink
Publish alpine container (#398)
Browse files Browse the repository at this point in the history
 * 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>
  • Loading branch information
6543 and anbraten authored Oct 4, 2021
1 parent 3837e03 commit e3354e4
Show file tree
Hide file tree
Showing 10 changed files with 98 additions and 94 deletions.
4 changes: 0 additions & 4 deletions .dockerignore

This file was deleted.

92 changes: 49 additions & 43 deletions .woodpecker/main.yml
Original file line number Diff line number Diff line change
Expand Up @@ -50,81 +50,87 @@ pipeline:
- (cd web/; go generate ./...)
- 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:
image: golang:1.16
commands: make release-cli

publish-server:
image: plugins/docker
repo: woodpeckerci/woodpecker-server
dockerfile: docker/Dockerfile.server
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:
branch: master
event: push

publish-agent:
image: plugins/docker
repo: woodpeckerci/woodpecker-agent
dockerfile: Dockerfile.agent
dockerfile: docker/Dockerfile.agent
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-agent-alpine:
# image: plugins/docker
# repo: woodpeckerci/woodpecker-agent
# dockerfile: Dockerfile.agent.alpine
# secrets: [ docker_username, docker_password ]
# tag: [ alpine ]
# when:
# 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
publish-agent-alpine:
image: plugins/docker
repo: woodpeckerci/woodpecker-agent
dockerfile: docker/Dockerfile.agent.alpine
secrets: [ docker_username, docker_password ]
# TODO: only release as next-alpine after 0.15.0 got released
tag: [next-alpine, latest-alpine]
when:
branch: master
event: push

release-server:
image: plugins/docker
repo: woodpeckerci/woodpecker-server
dockerfile: docker/Dockerfile.server
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:
event: tag

release-agent:
image: plugins/docker
repo: woodpeckerci/woodpecker-agent
dockerfile: Dockerfile.agent
dockerfile: docker/Dockerfile.agent
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:
event: tag

Expand Down
19 changes: 0 additions & 19 deletions BUILDING

This file was deleted.

13 changes: 0 additions & 13 deletions Dockerfile

This file was deleted.

10 changes: 0 additions & 10 deletions Dockerfile.agent

This file was deleted.

17 changes: 17 additions & 0 deletions docker/Dockerfile.agent
Original file line number Diff line number Diff line change
@@ -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"]
4 changes: 2 additions & 2 deletions Dockerfile.agent.alpine → docker/Dockerfile.agent.alpine
Original file line number Diff line number Diff line change
@@ -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

ENV GODEBUG=netdns=go
Expand All @@ -9,4 +10,3 @@ EXPOSE 3000
HEALTHCHECK CMD ["/bin/woodpecker-agent", "ping"]

ENTRYPOINT ["/bin/woodpecker-agent"]

20 changes: 20 additions & 0 deletions docker/Dockerfile.server
Original file line number Diff line number Diff line change
@@ -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"]
6 changes: 4 additions & 2 deletions Dockerfile.alpine → docker/Dockerfile.server.alpine
Original file line number Diff line number Diff line change
@@ -1,8 +1,10 @@
FROM alpine:3.9.4
EXPOSE 8000 9000 80 443
# docker build --rm -f docker/Dockerfile.server.alpine -t woodpeckerci/woodpecker-server .

FROM alpine:3.14
RUN apk add -U --no-cache ca-certificates

EXPOSE 8000 9000 80 443

ENV GODEBUG=netdns=go
ENV WOODPECKER_DATABASE_DATASOURCE=/var/lib/drone/drone.sqlite
ENV WOODPECKER_DATABASE_DRIVER=sqlite3
Expand Down
7 changes: 6 additions & 1 deletion docs/docs/80-downloads.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,11 @@

## 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
# server
docker pull woodpeckerci/woodpecker-server:latest
Expand All @@ -15,7 +20,7 @@ docker pull woodpeckerci/woodpecker-server:latest-alpine
docker pull woodpeckerci/woodpecker-agent:latest
docker pull woodpeckerci/woodpecker-agent:latest-alpine

# cli
# TODO: cli
docker pull woodpeckerci/woodpecker-cli:latest
docker pull woodpeckerci/woodpecker-cli:latest-alpine
```
Expand Down

0 comments on commit e3354e4

Please sign in to comment.