mirror of
https://github.com/fbartels/cloudron-drone-app.git
synced 2024-11-21 12:50:59 +00:00
Add scripting to run drone-server on Cloudron
Signed-off-by: Felix Bartels <felix@host-consultants.de>
This commit is contained in:
commit
ab399ce040
5 changed files with 115 additions and 0 deletions
11
CloudronManifest.json
Normal file
11
CloudronManifest.json
Normal file
|
@ -0,0 +1,11 @@
|
||||||
|
{
|
||||||
|
"version": "0.0.1",
|
||||||
|
"id": "com.github.drone",
|
||||||
|
"healthCheckPath": "/",
|
||||||
|
"httpPort": 8000,
|
||||||
|
"addons": {
|
||||||
|
"localstorage": {},
|
||||||
|
"postgresql": {}
|
||||||
|
},
|
||||||
|
"manifestVersion": 2
|
||||||
|
}
|
26
Dockerfile
Normal file
26
Dockerfile
Normal file
|
@ -0,0 +1,26 @@
|
||||||
|
FROM drone/drone:1.7.0 as drone
|
||||||
|
|
||||||
|
FROM cloudron/base:2.0.0@sha256:f9fea80513aa7c92fe2e7bf3978b54c8ac5222f47a9a32a7f8833edf0eb5a4f4
|
||||||
|
|
||||||
|
EXPOSE 8000
|
||||||
|
|
||||||
|
# add supervisor configs
|
||||||
|
RUN sed -e 's,^logfile=.*$,logfile=/run/supervisord.log,' -i /etc/supervisor/supervisord.conf
|
||||||
|
COPY supervisor-drone-server.conf /etc/supervisor/conf.d/
|
||||||
|
|
||||||
|
ENV \
|
||||||
|
XDG_CACHE_HOME=/app/data \
|
||||||
|
DRONE_SERVER_PROTO=https \
|
||||||
|
DRONE_DATABASE_DRIVER=postgres \
|
||||||
|
DRONE_RUNNER_OS=linux \
|
||||||
|
DRONE_RUNNER_ARCH=amd64 \
|
||||||
|
DRONE_SERVER_PORT=:8000 \
|
||||||
|
DRONE_DATADOG_ENABLED=false
|
||||||
|
|
||||||
|
COPY --from=drone /bin/drone-server /bin
|
||||||
|
|
||||||
|
COPY start.sh /app/pkg/
|
||||||
|
|
||||||
|
WORKDIR /app/data
|
||||||
|
|
||||||
|
CMD [ "/app/pkg/start.sh" ]
|
38
Makefile
Normal file
38
Makefile
Normal file
|
@ -0,0 +1,38 @@
|
||||||
|
CLOUDRON_APP ?= drone
|
||||||
|
CLOUDRON_ID := $(shell jq -r .id CloudronManifest.json)
|
||||||
|
DOCKER_REPO ?= fbartels
|
||||||
|
|
||||||
|
.PHONY: default
|
||||||
|
default: build update
|
||||||
|
|
||||||
|
.PHONY: init
|
||||||
|
init:
|
||||||
|
cloudron init
|
||||||
|
|
||||||
|
.PHONY: build
|
||||||
|
build:
|
||||||
|
cloudron build --set-repository $(DOCKER_REPO)/$(CLOUDRON_ID)
|
||||||
|
|
||||||
|
.PHONY: update
|
||||||
|
update: build
|
||||||
|
cloudron update --app ${CLOUDRON_APP}
|
||||||
|
|
||||||
|
.PHONY: install
|
||||||
|
install: build
|
||||||
|
cloudron install --location ${CLOUDRON_APP}
|
||||||
|
|
||||||
|
.PHONY: uninstall
|
||||||
|
uninstall:
|
||||||
|
cloudron uninstall --app ${CLOUDRON_APP}
|
||||||
|
|
||||||
|
.PHONY: install-debug
|
||||||
|
install-debug:
|
||||||
|
cloudron install --location ${CLOUDRON_APP} --debug
|
||||||
|
|
||||||
|
.PHONY: exec
|
||||||
|
exec:
|
||||||
|
cloudron exec --app ${CLOUDRON_APP}
|
||||||
|
|
||||||
|
.PHONY: logs
|
||||||
|
logs:
|
||||||
|
cloudron logs -f --app ${CLOUDRON_APP}
|
30
start.sh
Executable file
30
start.sh
Executable file
|
@ -0,0 +1,30 @@
|
||||||
|
#!/bin/sh
|
||||||
|
|
||||||
|
set -x
|
||||||
|
|
||||||
|
random_string() {
|
||||||
|
LC_CTYPE=C tr -dc 'a-zA-Z0-9' < /dev/urandom | head -c32
|
||||||
|
}
|
||||||
|
|
||||||
|
if [ ! -e /app/data/.env ]; then
|
||||||
|
cat <<-EOF > "/app/data/.env"
|
||||||
|
# Custom configuration for drone-server
|
||||||
|
DRONE_GITEA_SERVER=git.9wd.eu
|
||||||
|
DRONE_GITEA_CLIENT_ID=xxx
|
||||||
|
DRONE_GITEA_CLIENT_SECRET=xxx
|
||||||
|
DRONE_RPC_SECRET=$(random_string)
|
||||||
|
DRONE_DATABASE_SECRET=$(random_string)
|
||||||
|
DRONE_SERVER_HOST=$CLOUDRON_APP_DOMAIN
|
||||||
|
DRONE_DATABASE_DATASOURCE=postgres://$CLOUDRON_POSTGRESQL_USERNAME:$CLOUDRON_POSTGRESQL_PASSWORD@$CLOUDRON_POSTGRESQL_HOST:$CLOUDRON_POSTGRESQL_PORT/$CLOUDRON_POSTGRESQL_DATABASE?sslmode=disable
|
||||||
|
EOF
|
||||||
|
fi
|
||||||
|
|
||||||
|
# export all values from ".env"
|
||||||
|
set -a
|
||||||
|
. /app/data/.env
|
||||||
|
set +x
|
||||||
|
|
||||||
|
echo "=> Ensure permissions"
|
||||||
|
chown -R cloudron:cloudron /run /app/data
|
||||||
|
|
||||||
|
exec /usr/bin/supervisord --configuration /etc/supervisor/supervisord.conf --nodaemon -i drone-server
|
10
supervisor-drone-server.conf
Normal file
10
supervisor-drone-server.conf
Normal file
|
@ -0,0 +1,10 @@
|
||||||
|
[program:drone-server]
|
||||||
|
command=/bin/drone-server
|
||||||
|
directory=/app/data
|
||||||
|
user=cloudron
|
||||||
|
autostart=true
|
||||||
|
autorestart=true
|
||||||
|
stdout_logfile=/dev/stdout
|
||||||
|
stdout_logfile_maxbytes=0
|
||||||
|
stderr_logfile=/dev/stderr
|
||||||
|
stderr_logfile_maxbytes=0
|
Loading…
Reference in a new issue