Skip to content

Commit

Permalink
shellcheck / POSIXify a bit
Browse files Browse the repository at this point in the history
  • Loading branch information
romain-dartigues committed Dec 29, 2022
1 parent 703a86e commit 13a01a3
Show file tree
Hide file tree
Showing 8 changed files with 103 additions and 105 deletions.
62 changes: 30 additions & 32 deletions jobs/docker/templates/bin/ctl
Original file line number Diff line number Diff line change
Expand Up @@ -12,36 +12,36 @@ function create_network_bridge(){
if [ -n "${DOCKER_BRIDGE_NAME:-}" ]; then
set +e
ip link delete docker0
ip link delete ${DOCKER_BRIDGE_NAME}
ip link add ${DOCKER_BRIDGE_NAME} type bridge
ip addr add ${DOCKER_BRIDGE_CIDR} dev ${DOCKER_BRIDGE_NAME}
ip link set dev ${DOCKER_BRIDGE_NAME} up
ip link delete "${DOCKER_BRIDGE_NAME}"
ip link add "${DOCKER_BRIDGE_NAME}" type bridge
ip addr add "${DOCKER_BRIDGE_CIDR}" dev "${DOCKER_BRIDGE_NAME}"
ip link set dev "${DOCKER_BRIDGE_NAME}" up
set -e
fi
}

case $1 in

start)
pid_guard ${DOCKER_PID_FILE} ${JOB_NAME}
pid_guard "${DOCKER_PID_FILE}" "${JOB_NAME}"

# Create docker data store
if [ ! -d ${DOCKER_STORE_DIR}/docker ]; then
mkdir -p ${DOCKER_STORE_DIR}/docker
chmod 770 ${DOCKER_STORE_DIR}/docker
if [ ! -d "${DOCKER_STORE_DIR}/docker" ]; then
mkdir -p "${DOCKER_STORE_DIR}/docker"
chmod 0770 "${DOCKER_STORE_DIR}/docker"
fi

# Set ulimits
ulimit -n ${DOCKER_ULIMIT_NOFILE}
ulimit -n "${DOCKER_ULIMIT_NOFILE:-8192}"

# Set vm.max_map_count
[ -n "${DOCKER_VM_MAX_MAP_COUNT}" ] && sysctl -w vm.max_map_count=${DOCKER_VM_MAX_MAP_COUNT}
[ -n "${DOCKER_VM_MAX_MAP_COUNT}" ] && sysctl -w "vm.max_map_count=${DOCKER_VM_MAX_MAP_COUNT}"

# Mount cgroupfs hierarchy
${JOB_DIR}/bin/cgroupfs-mount
"${JOB_DIR}/bin/cgroupfs-mount"

# Setup ssh env vars
${JOB_DIR}/bin/setup-user-env
"${JOB_DIR}/bin/setup-user-env"

create_network_bridge

Expand All @@ -66,8 +66,8 @@ case $1 in
${DOCKER_DNS_SEARCH:-} \
${DOCKER_EXEC_OPTIONS:-} \
--group vcap \
--data-root ${DOCKER_STORE_DIR}/docker \
--host unix://${DOCKER_PID_DIR}/docker.sock \
--data-root "${DOCKER_STORE_DIR}/docker" \
--host "unix://${DOCKER_PID_DIR}/docker.sock" \
${DOCKER_ICC} \
${DOCKER_INSECURE_REGISTRIES:-} \
${DOCKER_IP:-} \
Expand All @@ -92,38 +92,38 @@ case $1 in
${DOCKER_TLS_CERT:-} \
${DOCKER_TLS_KEY:-} \
${DOCKER_USERLAND_PROXY} \
>>${DOCKER_LOG_DIR}/${OUTPUT_LABEL}.stdout.log \
2>>${DOCKER_LOG_DIR}/${OUTPUT_LABEL}.stderr.log
1>>"${DOCKER_LOG_DIR}/${OUTPUT_LABEL}.stdout.log" \
2>>"${DOCKER_LOG_DIR}/${OUTPUT_LABEL}.stderr.log"
;;

stop)
# Stop Docker containers
echo "Stopping docker containers..."
containers="$(/var/vcap/packages/docker/bin/docker --host unix://${DOCKER_PID_DIR}/docker.sock ps -q)"
if [[ ! -z $containers ]]; then
for container in $containers
do
echo "Stopping docker container ${container}"
/var/vcap/packages/docker/bin/docker --host unix://${DOCKER_PID_DIR}/docker.sock stop ${container}
done
fi
/var/vcap/packages/docker/bin/docker --host "unix://${DOCKER_PID_DIR}/docker.sock" ps -q |
while read -r container
do
echo "Stopping docker container ${container}"
/var/vcap/packages/docker/bin/docker --host "unix://${DOCKER_PID_DIR}/docker.sock" stop "${container}"
done

# Stop Docker daemon
echo -n "Stopping docker daemon..."
kill_and_wait ${DOCKER_PID_FILE}
kill_and_wait "${DOCKER_PID_FILE}"
echo "DEBUG: Contents of /proc/mounts after stopping docker"
cat /proc/mounts

mounts=$(cat /proc/mounts | grep "/var/vcap/store/docker/docker/${DOCKER_STORAGE_DRIVER_VALUE}/.*" | awk '{print $2}')
for mount in $mounts; do
grep -F "/var/vcap/store/docker/docker/${DOCKER_STORAGE_DRIVER_VALUE}/" /proc/mounts |
awk '{print $2}' |
while read -r mount
do
echo "Unmounting $mount"
umount $mount
umount "$mount"
done

if [[ -d /var/vcap/store/docker/docker/${DOCKER_STORAGE_DRIVER_VALUE} ]]; then
set +e
echo "Unmounting /var/vcap/store/docker/docker/${DOCKER_STORAGE_DRIVER_VALUE}"
umount /var/vcap/store/docker/docker/${DOCKER_STORAGE_DRIVER_VALUE}
umount "/var/vcap/store/docker/docker/${DOCKER_STORAGE_DRIVER_VALUE}"
set -e
fi

Expand All @@ -134,9 +134,7 @@ case $1 in
set -e
fi

if [[ -L "/var/run/docker.sock" ]]; then
rm /var/run/docker.sock
fi
rm -vfr /var/run/docker.sock
;;

*)
Expand Down
6 changes: 2 additions & 4 deletions jobs/docker/templates/bin/envrc
Original file line number Diff line number Diff line change
@@ -1,8 +1,6 @@
#!/bin/bash
#!/bin/sh

export PATH=$PATH:/var/vcap/packages/docker/bin
export PATH=$PATH:/var/vcap/packages/ctop/bin
export PATH="${PATH}:/var/vcap/packages/ctop/bin:/var/vcap/packages/docker/bin"

export DOCKER_SOCK=/var/vcap/sys/run/docker/docker.sock
export DOCKER_HOST=unix://$DOCKER_SOCK
alias docker="/var/vcap/packages/docker/bin/docker --host unix://${DOCKER_SOCK}"
2 changes: 1 addition & 1 deletion jobs/docker/templates/bin/setup-user-env
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
#!/bin/bash
#!/bin/sh

checkenv() {
trap "exit 0" INT TERM QUIT
Expand Down
4 changes: 2 additions & 2 deletions jobs/gitlab-runner/templates/drain
Original file line number Diff line number Diff line change
Expand Up @@ -15,9 +15,9 @@ export no_proxy=<%= proxy %>
<% end -%>

/var/vcap/packages/gitlab-runner/bin/gitlab-runner unregister \
--config ${STORE_DIR}/config.toml \
--config "${STORE_DIR}/config.toml" \
--all-runners

rm -f ${STORE_DIR}/config.toml
rm -f "${STORE_DIR}/config.toml"

echo 0 # sleep for zero seconds
12 changes: 6 additions & 6 deletions jobs/gitlab-runner/templates/pre-start
Original file line number Diff line number Diff line change
@@ -1,13 +1,13 @@
#!/bin/bash
#!/bin/sh

set -e

STORE_DIR=/var/vcap/store/gitlab-runner
BUILD_DIR=${STORE_DIR}/builds
CACHE_DIR=${STORE_DIR}/cache

mkdir -p $BUILD_DIR $CACHE_DIR
chown -R vcap:vcap ${STORE_DIR}
mkdir -p "$BUILD_DIR" "$CACHE_DIR"
chown -R vcap:vcap "${STORE_DIR}"

RUNNER_NAME="<%= p('runner.name') %><% if p("runner.append_index") -%>-<%= spec.index %><% end -%>"

Expand All @@ -25,7 +25,7 @@ export no_proxy=<%= proxy %>
runuser -u vcap -- /var/vcap/packages/gitlab-runner/bin/gitlab-runner register \
--non-interactive \
--config "${STORE_DIR}/config.toml" \
--name ${RUNNER_NAME} \
--name "${RUNNER_NAME}" \
--executor "<%= p('runner.executor') %>" \
<% if p('runner.executor') == "docker" then -%>
<% if p('runner.docker_privileged') then -%>
Expand All @@ -47,8 +47,8 @@ runuser -u vcap -- /var/vcap/packages/gitlab-runner/bin/gitlab-runner register \
<% if p('runner.allow_untagged') == true then -%>
--run-untagged \
<% end -%>
--builds-dir ${BUILD_DIR} \
--cache-dir ${CACHE_DIR} \
--builds-dir "${BUILD_DIR}" \
--cache-dir "${CACHE_DIR}" \
--env http_proxy="<%= p('env.http_proxy', '') %>" \
--env https_proxy="<%= p('env.https_proxy', '') %>" \
--env no_proxy="<%= p('env.no_proxy', '') %>" \
Expand Down
16 changes: 9 additions & 7 deletions src/bosh-helpers/ctl_setup.sh
Original file line number Diff line number Diff line change
Expand Up @@ -25,19 +25,21 @@ export TMP_DIR=$HOME/sys/tmp/$JOB_NAME
export TMPDIR=$TMP_DIR

# Load job properties
if [ -f $JOB_DIR/bin/job_properties.sh ]; then
source $JOB_DIR/bin/job_properties.sh
if [ -f "$JOB_DIR/bin/job_properties.sh" ]; then
# shellcheck disable=SC1091
source "$JOB_DIR/bin/job_properties.sh"
fi

for dir in $LOG_DIR $RUN_DIR $STORE_DIR $TMP_DIR
do
mkdir -p ${dir}
chown vcap:vcap ${dir}
chmod 775 ${dir}
mkdir -p "${dir}"
chown vcap:vcap "${dir}"
chmod 0775 "${dir}"
done

# Load some control helpers
source $HOME/packages/bosh-helpers/ctl_utils.sh
# shellcheck source=./ctl_utils.sh
source "$HOME/packages/bosh-helpers/ctl_utils.sh"

# Redirect output
redirect_output ${OUTPUT_LABEL}
redirect_output "${OUTPUT_LABEL}"
Loading

0 comments on commit 13a01a3

Please sign in to comment.