06e942f62c
store OCI containers with gitlab metadata and is fully integrated into gitlab.
53 lines
1.2 KiB
Bash
53 lines
1.2 KiB
Bash
#!/bin/sh
|
|
|
|
# PROVIDE: gitlab_registry
|
|
# REQUIRE: LOGIN
|
|
# KEYWORD: shutdown
|
|
|
|
. /etc/rc.subr
|
|
|
|
name="gitlab_registry"
|
|
rcvar="gitlab_registry_enable"
|
|
|
|
load_rc_config $name
|
|
|
|
: ${gitlab_registry_enable:="NO"}
|
|
: ${gitlab_registry_user:="git"}
|
|
: ${gitlab_registry_group:="git"}
|
|
: ${gitlab_registry_command:="%%PREFIX%%/bin/registry"}
|
|
: ${gitlab_registry_config:="%%PREFIX%%/etc/gitlab-registry/config.yml"}
|
|
|
|
logfile="/var/log/${name}.log"
|
|
pidfile="/var/run/${name}/${name}.pid"
|
|
|
|
command="/usr/sbin/daemon"
|
|
# -r = restart on exit
|
|
# -f = stay in foreground (rc handles it)
|
|
# -P = write pidfile
|
|
# -u = run as user
|
|
# -o = log output
|
|
command_args="-H -r -f -o ${logfile} -P ${pidfile} -t ${name} \
|
|
/bin/sh -c '${gitlab_registry_command} serve ${gitlab_registry_config}'"
|
|
|
|
start_precmd="${name}_precmd"
|
|
start_cmd="${name}_start"
|
|
|
|
gitlab_registry_precmd() {
|
|
echo "Preparing ${name} environment..."
|
|
|
|
# Create required directories
|
|
install -d -o ${gitlab_registry_user} -g ${gitlab_registry_group} /var/run/${name}
|
|
|
|
# Ensure log file exists and is writeable
|
|
touch ${logfile}
|
|
chown ${gitlab_registry_user}:${gitlab_registry_group} ${logfile}
|
|
}
|
|
|
|
gitlab_registry_start() {
|
|
echo "Starting ${name}"
|
|
su -m ${gitlab_registry_user} -c "${command} ${command_args}"
|
|
}
|
|
|
|
run_rc_command "$1"
|
|
|