ssh client revision added some helper scripts and changed to alpine
All checks were successful
/ build-docker-image (push) Successful in 50s
All checks were successful
/ build-docker-image (push) Successful in 50s
This commit is contained in:
@@ -1,16 +1,25 @@
|
||||
FROM ubuntu:latest
|
||||
FROM alpine:latest
|
||||
|
||||
RUN apt-get update
|
||||
|
||||
RUN apt-get install -y \
|
||||
python3 \
|
||||
python3-pip \
|
||||
borgbackup \
|
||||
fuse \
|
||||
python3-pyfuse3 \
|
||||
openssh-client
|
||||
# Install BorgBackup and OpenSSH client
|
||||
RUN apk update && apk add --no-cache \
|
||||
borgbackup \
|
||||
openssh \
|
||||
bash \
|
||||
tzdata
|
||||
|
||||
COPY ./docker/app /app
|
||||
RUN chmod +x /app/scripts/ffenv
|
||||
RUN ln -s /app/scripts/ffenv /usr/local/bin/ffenv
|
||||
RUN chmod +x /app/scripts -R
|
||||
RUN ln -s /app/scripts/loadenv /usr/local/bin/loadenv
|
||||
RUN ln -s /app/scripts/remote-connect /usr/local/bin/remote-connect
|
||||
RUN ln -s /app/scripts/remote-connect /usr/local/bin/remote-get-folder-size
|
||||
RUN addgroup -S borg && adduser -S borg -G borg
|
||||
USER borg
|
||||
|
||||
WORKDIR /home/borg
|
||||
|
||||
RUN echo "source /usr/local/bin/loadenv" > ~/.bash_profile
|
||||
RUN echo "source /usr/local/bin/loadenv" > ~/.bashrc
|
||||
|
||||
ENTRYPOINT ["bash" , "-c", "borg $0"]
|
||||
|
||||
CMD ["--help"]
|
||||
@@ -1,19 +0,0 @@
|
||||
#!/bin/bash
|
||||
echo "checking SSH_ID..."
|
||||
if [[ "${SSH_ID}" ]]; then
|
||||
echo "found SSH_ID..."
|
||||
mkdir -p /root/.ssh
|
||||
echo "${SSH_ID}" > /root/.ssh/id_rsa
|
||||
chmod 700 /root/.ssh/id_rsa
|
||||
fi
|
||||
echo "checking BORG_KEY..."
|
||||
if [[ "${BORG_KEY}" ]]; then
|
||||
echo "found BORG_KEY..."
|
||||
mkdir -p /root/.config/borg/keys
|
||||
echo "${BORG_KEY}" > /root/.config/borg/keys/key
|
||||
fi
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
32
docker/app/scripts/loadenv
Executable file
32
docker/app/scripts/loadenv
Executable file
@@ -0,0 +1,32 @@
|
||||
#!/bin/bash
|
||||
|
||||
|
||||
(return 0 2>/dev/null) || {
|
||||
echo "Please source this script: source $0"
|
||||
exit 1
|
||||
}
|
||||
|
||||
|
||||
if [ -f "/app/borg/key" ]; then
|
||||
export BORG_KEY_FILE="/app/borg/key"
|
||||
fi
|
||||
|
||||
|
||||
# extracts ssh connection from borg-repo
|
||||
export SSH_CONNECTION="${BORG_REPO#ssh://}"
|
||||
export SSH_CONNECTION="${SSH_CONNECTION%%/*}"
|
||||
|
||||
#extract folder from ssh connection
|
||||
export SSH_FOLDER="/${BORG_REPO#ssh://*/}"
|
||||
|
||||
|
||||
export SSH_COMMAND="ssh"
|
||||
if [ "${BORG_RSH}" ]; then
|
||||
export SSH_COMMAND=${BORG_RSH}
|
||||
fi
|
||||
|
||||
export SSH_COMMAND="$SSH_COMMAND $SSH_CONNECTION"
|
||||
|
||||
|
||||
|
||||
|
||||
11
docker/app/scripts/remote-connect
Executable file
11
docker/app/scripts/remote-connect
Executable file
@@ -0,0 +1,11 @@
|
||||
#/bin/bash
|
||||
source /app/scripts/loadenv
|
||||
#echo "Received: $@"
|
||||
#echo "Trace: Connecting with: ${SSH_COMMAND[@]}" "$@"
|
||||
|
||||
# converts command to array
|
||||
read -r -a SSH_COMMAND_ARRAY <<< "$SSH_COMMAND"
|
||||
|
||||
#echo "Running: ${SSH_COMMAND_ARRAY[@]} $@"
|
||||
# executes ssh command with all arguments received from caller
|
||||
"${SSH_COMMAND_ARRAY[@]}" "$@"
|
||||
5
docker/app/scripts/remote-get-folder-size
Executable file
5
docker/app/scripts/remote-get-folder-size
Executable file
@@ -0,0 +1,5 @@
|
||||
#/bin/bash
|
||||
source loadenv
|
||||
repo_size_bytes=$(remote-connect du -b "$SSH_FOLDER" -d 0)
|
||||
repo_size_bytes=$(echo "$repo_size_bytes" | awk '{print $1}')
|
||||
echo "$repo_size_bytes"
|
||||
Reference in New Issue
Block a user