mirror of
https://github.com/jdalrymple/gitbeaker.git
synced 2026-01-18 15:55:30 +00:00
101 lines
3.3 KiB
Bash
101 lines
3.3 KiB
Bash
#!/bin/bash
|
|
set -e
|
|
|
|
function sigterm_handler() {
|
|
echo "SIGTERM signal received, try to gracefully shutdown all services..."
|
|
gitlab-ctl stop
|
|
}
|
|
|
|
function failed_pg_upgrade() {
|
|
echo 'Upgrading the existing database to 9.6 failed and was reverted.'
|
|
echo 'Please check the output, and open an issue at:'
|
|
echo 'https://gitlab.com/gitlab-org/omnibus-gitlab/issues'
|
|
echo 'If you would like to restart the instance without attempting to'
|
|
echo 'upgrade, add the following to your docker command:'
|
|
echo '-e GITLAB_SKIP_PG_UPGRADE=true'
|
|
exit 1
|
|
}
|
|
|
|
trap "sigterm_handler; exit" TERM
|
|
|
|
source /RELEASE
|
|
echo "Thank you for using GitLab Docker Image!"
|
|
echo "Current version: $RELEASE_PACKAGE=$RELEASE_VERSION"
|
|
echo ""
|
|
if [[ "$PACKAGECLOUD_REPO" == "unstable" ]]; then
|
|
echo "You are using UNSTABLE version of $RELEASE_PACKAGE!"
|
|
echo ""
|
|
fi
|
|
echo "Configure GitLab for your system by editing /etc/gitlab/gitlab.rb file"
|
|
echo "And restart this container to reload settings."
|
|
echo "To do it use docker exec:"
|
|
echo
|
|
echo " docker exec -it gitlab vim /etc/gitlab/gitlab.rb"
|
|
echo " docker restart gitlab"
|
|
echo
|
|
echo "For a comprehensive list of configuration options please see the Omnibus GitLab readme"
|
|
echo "https://gitlab.com/gitlab-org/omnibus-gitlab/blob/master/README.md"
|
|
echo
|
|
echo "If this container fails to start due to permission problems try to fix it by executing:"
|
|
echo
|
|
echo " docker exec -it gitlab update-permissions"
|
|
echo " docker restart gitlab"
|
|
echo
|
|
sleep 3s
|
|
|
|
# Copy gitlab.rb for the first time
|
|
if [[ ! -e /etc/gitlab/gitlab.rb ]]; then
|
|
echo "Installing gitlab.rb config..."
|
|
cp /opt/gitlab/etc/gitlab.rb.template /etc/gitlab/gitlab.rb
|
|
chmod 0600 /etc/gitlab/gitlab.rb
|
|
fi
|
|
|
|
# Generate ssh host key for the first time
|
|
if [[ ! -f /etc/gitlab/ssh_host_rsa_key ]]; then
|
|
echo "Generating ssh_host_rsa_key..."
|
|
ssh-keygen -f /etc/gitlab/ssh_host_rsa_key -N '' -t rsa
|
|
chmod 0600 /etc/gitlab/ssh_host_rsa_key
|
|
fi
|
|
if [[ ! -f /etc/gitlab/ssh_host_ecdsa_key ]]; then
|
|
echo "Generating ssh_host_ecdsa_key..."
|
|
ssh-keygen -f /etc/gitlab/ssh_host_ecdsa_key -N '' -t ecdsa
|
|
chmod 0600 /etc/gitlab/ssh_host_ecdsa_key
|
|
fi
|
|
if [[ ! -f /etc/gitlab/ssh_host_ed25519_key ]]; then
|
|
echo "Generating ssh_host_ed25519_key..."
|
|
ssh-keygen -f /etc/gitlab/ssh_host_ed25519_key -N '' -t ed25519
|
|
chmod 0600 /etc/gitlab/ssh_host_ed25519_key
|
|
fi
|
|
|
|
# Remove all services, the reconfigure will create them
|
|
echo "Preparing services..."
|
|
rm -f /opt/gitlab/service/*
|
|
ln -s /opt/gitlab/sv/sshd /opt/gitlab/service
|
|
ln -sf /opt/gitlab/embedded/bin/sv /opt/gitlab/init/sshd
|
|
mkdir -p /var/log/gitlab/sshd
|
|
|
|
# Start service manager
|
|
echo "Starting services..."
|
|
GITLAB_OMNIBUS_CONFIG= /opt/gitlab/embedded/bin/runsvdir-start &
|
|
|
|
# Configure gitlab package
|
|
# WARNING:
|
|
# the preinst script has the database backup
|
|
# It will not be executed, because all services are not yet started
|
|
# They will be started when `reconfigure` is executed
|
|
echo "Configuring GitLab package..."
|
|
/var/lib/dpkg/info/${RELEASE_PACKAGE}.preinst upgrade
|
|
|
|
echo "Configuring GitLab..."
|
|
gitlab-ctl reconfigure
|
|
|
|
# Make sure PostgreSQL is at the latest version.
|
|
# If it fails, print a message with a workaround and exit
|
|
if [ "${GITLAB_SKIP_PG_UPGRADE}" != true ]; then
|
|
gitlab-ctl pg-upgrade -w || failed_pg_upgrade
|
|
fi
|
|
|
|
if [ -n "${GITLAB_POST_RECONFIGURE_SCRIPT+x}" ]; then
|
|
echo "Runnning Post Reconfigure Script..."
|
|
eval "${GITLAB_POST_RECONFIGURE_SCRIPT}"
|
|
fi |