1
1
This commit is contained in:
parent
7db99e0fa6
commit
f433482dcd
6 changed files with 125 additions and 78 deletions
13
.github/README.md
vendored
Normal file
13
.github/README.md
vendored
Normal file
|
@ -0,0 +1,13 @@
|
|||
# Docker Daemon WoodpeckerCI Plugin
|
||||
|
||||
[](https://hub.docker.com/r/kokuwaio/dockerd)
|
||||
[](https://hub.docker.com/r/kokuwaio/dockerd)
|
||||
[](https://git.kokuwa.io/woodpecker/dockerd/src/branch/main/Dockerfile)
|
||||
[](https://git.kokuwa.io/woodpecker/dockerd/src/branch/main/LICENSE)
|
||||
[](https://git.kokuwa.io/woodpecker/dockerd/pulls)
|
||||
[](https://git.kokuwa.io/woodpecker/dockerd/issues)
|
||||
|
||||
A [Woodpecker I](https://woodpecker-ci.org) prepared docker daemon.
|
||||
Also usable with Gitlab, Github or locally, see examples for usage.
|
||||
|
||||
For more documention see: [git.kokuwa.io/woodpecker/dockerd](https://git.kokuwa.io/woodpecker/dockerd)
|
|
@ -5,8 +5,58 @@ when:
|
|||
branch: main
|
||||
path: [.woodpecker/build.yaml, Dockerfile, Dockerfile.dockerignore, entrypoint.sh]
|
||||
|
||||
services:
|
||||
- name: dockerd
|
||||
image: kokuwaio/dockerd:dev
|
||||
ports: [2375]
|
||||
privileged: true
|
||||
pull: true
|
||||
|
||||
steps:
|
||||
|
||||
info:
|
||||
image: kokuwaio/docker-cli
|
||||
commands: docker info
|
||||
depends_on: []
|
||||
environment:
|
||||
DOCKER_HOST: tcp://dockerd:2375
|
||||
info2:
|
||||
image: kokuwaio/docker-cli
|
||||
depends_on: []
|
||||
commands: docker info
|
||||
info3:
|
||||
image: realworld/telnet
|
||||
depends_on: []
|
||||
commands: telnet dockerd 2375
|
||||
info4:
|
||||
image: arunvelsriram/utils
|
||||
depends_on: []
|
||||
commands: nslookup dockerd
|
||||
info6:
|
||||
image: bash
|
||||
depends_on: []
|
||||
commands: cat /etc/hosts
|
||||
info-sleep:
|
||||
image: bash
|
||||
depends_on: []
|
||||
commands: sleep 300
|
||||
info6:
|
||||
image: bash
|
||||
depends_on: []
|
||||
commands: env|sort
|
||||
info5:
|
||||
image: bash
|
||||
depends_on: []
|
||||
commands: env|sort
|
||||
image:
|
||||
image: kokuwaio/docker-cli
|
||||
depends_on: []
|
||||
commands: docker build . --tag=ghcr.io/inoa-io/inoa:snapshot
|
||||
--cache-from=type=registry,ref=ghcr.io/inoa-io/inoa:cache
|
||||
--build-arg=MAVEN_MIRROR_CENTRAL
|
||||
--build-arg=YARN_NPM_REGISTRY_SERVER
|
||||
--build-arg=YARN_UNSAFE_HTTP_WHITELIST
|
||||
|
||||
build:
|
||||
image: kokuwaio/buildctl
|
||||
settings: &settings
|
||||
|
|
|
@ -1,9 +1,8 @@
|
|||
when:
|
||||
instance: ci.kokuwa.io
|
||||
repo: woodpecker/dockerd
|
||||
event: [manual, push, pull_request]
|
||||
branch: main
|
||||
path: [.woodpecker/build.yaml, Dockerfile, Dockerfile.dockerignore, entrypoint.sh]
|
||||
event: pull_request
|
||||
path: [.woodpecker/build.yaml, .woodpecker/test.yaml, Dockerfile, Dockerfile.dockerignore, entrypoint.sh]
|
||||
|
||||
depends_on: [build]
|
||||
matrix:
|
||||
|
@ -11,26 +10,27 @@ matrix:
|
|||
labels:
|
||||
platform: linux/${PLATFORM}
|
||||
|
||||
services:
|
||||
- name: dockerd
|
||||
image: registry.kokuwa.io/kokuwaio/dockerd:ci-${CI_PIPELINE_NUMBER}
|
||||
ports: [2375]
|
||||
|
||||
steps:
|
||||
|
||||
pr:
|
||||
image: registry.kokuwa.io/kokuwaio/dockerd:ci-${CI_PIPELINE_NUMBER}
|
||||
commands: dockerd --version
|
||||
when:
|
||||
event: pull_request
|
||||
info:
|
||||
image: kokuwaio/docker-cli
|
||||
commands: docker info
|
||||
environment:
|
||||
DOCKER_HOST: tcp://dockerd:2375
|
||||
|
||||
kokuwa.io: &version
|
||||
image: registry.kokuwa.io/kokuwaio/dockerd
|
||||
pull: true
|
||||
commands: dockerd --version
|
||||
when:
|
||||
event: [manual, push]
|
||||
branch: main
|
||||
pull:
|
||||
image: kokuwaio/docker-cli
|
||||
commands: docker pull bash
|
||||
environment:
|
||||
DOCKER_HOST: tcp://dockerd:2375
|
||||
|
||||
docker.io:
|
||||
image: docker.io/kokuwaio/dockerd
|
||||
<<: *version
|
||||
|
||||
ghcr.io:
|
||||
image: ghcr.io/kokuwaio/dockerd
|
||||
<<: *version
|
||||
run:
|
||||
image: kokuwaio/docker-cli
|
||||
commands: docker run --rm bash uname -a
|
||||
environment:
|
||||
DOCKER_HOST: tcp://dockerd:2375
|
||||
|
|
12
Dockerfile
12
Dockerfile
|
@ -34,9 +34,17 @@ RUN --mount=type=bind,from=download,source=/tmp/docker,target=/tmp/docker \
|
|||
apt-get -qq install --yes --no-install-recommends ca-certificates uidmap slirp4netns dbus-user-session iproute2 /tmp/docker/*.deb && \
|
||||
rm -rf /etc/*- /var/lib/dpkg/*-old /var/lib/dpkg/status
|
||||
|
||||
RUN useradd dockerd --uid 1000 --home-dir /woodpecker/docker --create-home && \
|
||||
RUN useradd dockerd --uid 1000 --home-dir /home/docker --create-home && rm /etc/*- /home/docker/.* && \
|
||||
echo dockerd:100000:65536 >/etc/subuid && \
|
||||
echo dockerd:100000:65536 >/etc/subgid
|
||||
USER 1000
|
||||
COPY --chmod=555 entrypoint.sh /usr/bin/entrypoint.sh
|
||||
ENTRYPOINT ["/usr/bin/entrypoint.sh"]
|
||||
RUN --mount=type=bind,from=download,source=/tmp/docker,target=/tmp/docker \
|
||||
--mount=type=cache,target=/var/lib/apt/lists,sharing=locked \
|
||||
--mount=type=tmpfs,target=/var/log \
|
||||
--mount=type=tmpfs,target=/var/cache \
|
||||
ls -lA /tmp/docker/ && \
|
||||
apt-get -qq update && \
|
||||
apt-get -qq install --yes --no-install-recommends htop wget curl net-tools && \
|
||||
rm -rf /etc/*- /var/lib/dpkg/*-old /var/lib/dpkg/status
|
||||
USER 1000
|
75
README.md
75
README.md
|
@ -1,64 +1,43 @@
|
|||
# Docker Daemon WoodpeckerCI Plugin
|
||||
|
||||
[](https://hub.docker.com/repository/docker/kokuwaio/dockerhub-metadata)
|
||||
[](https://hub.docker.com/repository/docker/kokuwaio/dockerhub-metadata)
|
||||
[](https://github.com/kokuwaio/dockerhub-metadata/blob/main/Dockerfile)
|
||||
[](https://github.com/kokuwaio/dockerhub-metadata/blob/main/LICENSE)
|
||||
[](https://github.com/kokuwaio/dockerhub-metadata/issues)
|
||||
[](https://hub.docker.com/r/kokuwaio/dockerd)
|
||||
[](https://hub.docker.com/r/kokuwaio/dockerd)
|
||||
[](https://git.kokuwa.io/woodpecker/dockerd/src/branch/main/Dockerfile)
|
||||
[](https://git.kokuwa.io/woodpecker/dockerd/src/branch/main/LICENSE)
|
||||
[](https://git.kokuwa.io/woodpecker/dockerd/pulls)
|
||||
[](https://git.kokuwa.io/woodpecker/dockerd/issues)
|
||||
|
||||
A [Woodpecker CI](https://woodpecker-ci.org) prepared docker daemon.
|
||||
A [Woodpecker I](https://woodpecker-ci.org) prepared docker daemon.
|
||||
Also usable with Gitlab, Github or locally, see examples for usage.
|
||||
|
||||
## Features
|
||||
|
||||
- set full description in repository from local file
|
||||
- set short description in repository from settings
|
||||
- set categories for repository
|
||||
- includes rootless
|
||||
- configures mirror for dockerd
|
||||
|
||||
## Example
|
||||
|
||||
Woodpecker:
|
||||
|
||||
```yaml
|
||||
|
||||
services:
|
||||
- name: dockerd
|
||||
image: kokuwaio/dockerd
|
||||
ports: [2375, 8080]
|
||||
|
||||
steps:
|
||||
dockerhub:
|
||||
image: kokuwaio/dockerhub-metadata
|
||||
depends_on: []
|
||||
settings:
|
||||
repository: kokuwaio/example-image
|
||||
description-short: This image does that!
|
||||
categories: [developer-tools, integration-and-delivery]
|
||||
username: {from_secret: DOCKERHUB_USERNAME}
|
||||
password: {from_secret: DOCKERHUB_PASSWORD}
|
||||
when:
|
||||
event: push
|
||||
branch: main
|
||||
path: README.md
|
||||
```
|
||||
|
||||
Gitlab:
|
||||
|
||||
```yaml
|
||||
dockerhub:
|
||||
stage: deploy
|
||||
needs: []
|
||||
image: kokuwaio/hadolint
|
||||
variables:
|
||||
PLUGIN_REPOSITORY: kokuwaio/example-image
|
||||
PLUGIN_DESCRIPTION_SHORT: This image does that!
|
||||
PLUGIN_CATEGORIES: developer-tools,integration-and-delivery
|
||||
rules:
|
||||
- if: $CI_PIPELINE_SOURCE == "push"
|
||||
changes: [README.md]
|
||||
info:
|
||||
image: kokuwaio/docker-cli
|
||||
commands: docker info
|
||||
environment:
|
||||
DOCKER_HOST: tcp://dockerd:2375
|
||||
```
|
||||
|
||||
## Settings
|
||||
|
||||
| Settings Name | Environment | Default | Description |
|
||||
| ------------------- | ------------------------ | ----------- | ----------------------------------------------------------- |
|
||||
| `repository` | PLUGIN_DOCKER_PORT | `none` | Repository to update with metadata, e.g. `kokuwaio/example` |
|
||||
| `description-short` | PLUGIN_DESCRIPTION_SHORT | `none` | Short description for repository. |
|
||||
| `description-file` | PLUGIN_DESCRIPTION_FILE | `README.md` | File to read full description from |
|
||||
| `categories` | PLUGIN_CATEGORIES | `[]` | List of categories to set (maximum 3) |
|
||||
| `username` | PLUGIN_USERNAME | `none` | Username for Dockerhub login |
|
||||
| `password` | PLUGIN_PASSWORD | `none` | Password for Dockerhub login, **PAT** is not supported! |
|
||||
| Environment | Default | Description |
|
||||
| ------------------------- | ------- | ---------------------------------------------------------------------------------- |
|
||||
| DOCKERD_PORT | `2375` | Specifies the port to listen on |
|
||||
| DOCKERD_SHUTDOWN_TIMEOUT | `0` | Set the default shutdown timeout |
|
||||
| DOCKERD_LOG_LEVEL | `none` | Set the [logging level](https://docs.docker.com/reference/cli/dockerd/#log-format) |
|
||||
| DOCKERD_REGISTRY_MIRROR | `none` | Specifies a list of registry mirrors. |
|
||||
| DOCKERD_INSECURE_REGISTRY | `none | Configure [insecure registry](https://docs.docker.com/reference/cli/dockerd/#insecure-registries) |
|
||||
|
|
|
@ -7,10 +7,7 @@ set -e;
|
|||
## build command to execute
|
||||
##
|
||||
|
||||
COMMAND="dockerd --rootless --host=0.0.0.0:${DOCKERD_PORT:-2375} --tls=false --data-root=/woodpecker/docker --shutdown-timeout=${DOCKERD_SHUTDOWN_TIMEOUT:-0} --feature=buildkit=true --feature=containerd-snapshotter=true"
|
||||
if [[ "${DOCKERD_ROOTLESS:-true}" == "true" ]]; then
|
||||
COMMAND+=" "
|
||||
fi
|
||||
COMMAND="dockerd --rootless --host=0.0.0.0:${DOCKERD_PORT:-2375} --tls=false --data-root=/home/docker --shutdown-timeout=${DOCKERD_SHUTDOWN_TIMEOUT:-0} --feature=buildkit=true --feature=containerd-snapshotter=true"
|
||||
if [[ -n "$DOCKERD_LOG_LEVEL" ]]; then
|
||||
COMMAND+=" --log-level=$DOCKERD_LOG_LEVEL"
|
||||
fi
|
||||
|
@ -28,7 +25,7 @@ fi
|
|||
## execute command
|
||||
##
|
||||
|
||||
export XDG_RUNTIME_DIR=/woodpecker/docker/runtime
|
||||
COMMAND="rootlesskit --state-dir=/woodpecker/docker/rootlesskit --copy-up=/etc --copy-up=/run --propagation=rslave --disable-host-loopback --net=slirp4netns --slirp4netns-sandbox=auto --slirp4netns-seccomp=auto --port-driver=builtin $COMMAND"
|
||||
export XDG_RUNTIME_DIR=/home/docker/runtime
|
||||
COMMAND="rootlesskit --state-dir=/home/docker/rootlesskit --copy-up=/etc --copy-up=/run --propagation=rslave --disable-host-loopback --net=slirp4netns --slirp4netns-sandbox=auto --slirp4netns-seccomp=auto --port-driver=builtin $COMMAND"
|
||||
echo -e "${COMMAND// --/\\n --}\n"
|
||||
eval "$COMMAND"
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue