1
0
Fork 0
Container w/ Drone & SQLite
This repository has been archived on 2023-10-16. You can view files and clone it, but cannot push or open issues or pull requests.
Go to file
Daniel Wolf 2d7f25307f
Build Container Image / build_amd64 (push) Successful in 1m13s Details
Build Container Image / publish_amd64 (push) Successful in 22s Details
Build Container Image / build_arm64 (push) Successful in 7m51s Details
Build Container Image / publish_arm64 (push) Successful in 23s Details
Build Container Image / build_armhf (push) Successful in 17m9s Details
Build Container Image / publish_armhf (push) Successful in 47s Details
Build Container Image / build_manifest (push) Successful in 9s Details
Build Container Image / publish_manifest (push) Successful in 21s Details
use absolute urls for actions
2023-10-11 15:46:50 -04:00
.gitea/workflows use absolute urls for actions 2023-10-11 15:46:50 -04:00
override/etc/s6-overlay/s6-rc.d remove deprecated drone-runner-exec 2023-06-28 18:44:08 -04:00
.dockerignore update dockerignore 2023-06-28 18:42:13 -04:00
.gitignore update gitignore 2022-02-28 14:59:45 -05:00
Dockerfile update to drone v2.20.0 2023-08-28 08:02:49 -04:00
LICENSE.md remove included docker and ssh runners 2023-04-30 18:42:38 -04:00
README.md update to drone v2.20.0 2023-08-28 08:02:49 -04:00

README.md

Git | Docker | unRAID

Drone CI/CD Server

This docker image contains a Drone server to self-host your own continuous delivery platform.

PLEASE READ AND UNDERSTAND THE DRONE LICENSE. THIS IMAGE CONTAINS THE ENTERPRISE VERSION IS COMPILED WITH THE nolimit TAG AND USE REQUIRES YOU MEET CERTAIN REQUIREMENTS AS LAID OUT IN THE LICENSING FAQ. IF YOU DO NOT MEET THOSE REQUIREMENTS YOU MUST EITHER USE THE COMMUNITY VERSION INSTEAD OR PURCHASE A LICENSE.

To secure this service, we suggest a separate reverse proxy server, such as an NGINX container.

This container only includes a server and exec runner. This is not a single-server configuration so you can easily add more agents and runners in separate containers as needed. You can pass variable DRONE_EXEC_DISABLED to disable the included runner.

You can spin up a quick temporary test container like this:

docker run --rm -p 8080:8080 -it nephatrine/drone-ci:latest /bin/bash

Docker Tags

  • nephatrine/drone-server:latest: Drone v2.20.0 / Alpine Latest

Configuration Variables

You can set these parameters using the syntax -e "VARNAME=VALUE" on your docker run command. Some of these may only be used during initial configuration and further changes may need to be made in the generated configuration files.

  • DRONE_DATABASE_SECRET: Database Secret (generated)
  • DRONE_GITEA_SERVER: Gitea Server ("")
  • DRONE_GITEA_CLIENT_ID: Gitea OAuth2 ID ("")
  • DRONE_GITEA_CLIENT_SECRET: Gitea OAuth2 Secret ("")
  • DRONE_GITHUB_SERVER: Gitea Server ("")
  • DRONE_GITHUB_CLIENT_ID: Gitea OAuth2 ID ("")
  • DRONE_GITHUB_CLIENT_SECRET: Gitea OAuth2 Secret ("")
  • DRONE_GITLAB_SERVER: Gitlab Server ("")
  • DRONE_GITLAB_CLIENT_ID: Gitlab OAuth2 ID ("")
  • DRONE_GITLAB_CLIENT_SECRET: Gitlab OAuth2 Secret ("")
  • DRONE_RPC_SECRET: Server-Agent Secret (generated)
  • DRONE_SERVER_HOST: External Hostname (localhost)
  • DRONE_SERVER_PROTO: External Protocol (http)
  • DRONE_USER_CREATE: Initial Administative User ("")
  • PUID: Mount Owner UID (1000)
  • PGID: Mount Owner GID (100)
  • TZ: System Timezone (America/New_York)

The DRONE_USER_CREATE variable takes more than just a username. You should pass in a string formatted like this username:<username>,admin:true. This can be done after initial login at any time to bootstrap the administrative user. You will need to be an administative user to perform some tasks via the drone cli, but it is not required for basic usage.

Persistent Mounts

You can provide a persistent mountpoint using the -v /host/path:/container/path syntax. These mountpoints are intended to house important configuration files, logs, and application state (e.g. databases) so they are not lost on image update.

  • /mnt/config: Persistent Data.

Do not share /mnt/config volumes between multiple containers as they may interfere with the operation of one another.

You can perform some basic configuration of the container using the files and directories listed below.

  • /mnt/config/etc/crontabs/<user>: User Crontabs. [*]
  • /mnt/config/etc/drone-config: Set Drone Envars. [*]
  • /mnt/config/etc/logrotate.conf: Logrotate Global Configuration.
  • /mnt/config/etc/logrotate.d/: Logrotate Additional Configuration.

[*] Changes to some configuration files may require service restart to take immediate effect.

Network Services

This container runs network services that are intended to be exposed outside the container. You can map these to host ports using the -p HOST:CONTAINER or -p HOST:CONTAINER/PROTOCOL syntax.

  • 8080/tcp: Drone Server. This is the server interface.