Compare commits
8 Commits
Author | SHA1 | Date |
---|---|---|
Paolo Asperti | 66a33f797e | |
Paolo Asperti | 926aaa0983 | |
Paolo Asperti | 49d431dc58 | |
Paolo Asperti | 5ae52fa449 | |
Paolo Asperti | 8f2239014e | |
Paolo Asperti | ddb252d701 | |
Paolo Asperti | 8e9a8a90ee | |
Paolo Asperti | 5a3af2a55e |
|
@ -15,7 +15,9 @@ steps:
|
|||
tags:
|
||||
- latest
|
||||
force_tag: true
|
||||
cache_from: docker.asperti.com/paspo/nextcloudclient
|
||||
|
||||
trigger:
|
||||
event:
|
||||
- tag
|
||||
- cron
|
||||
|
|
39
Dockerfile
39
Dockerfile
|
@ -1,26 +1,27 @@
|
|||
FROM alpine:3.15
|
||||
FROM alpine:3.18
|
||||
|
||||
RUN \
|
||||
apk upgrade --update --no-cache && \
|
||||
apk add --update --no-cache nextcloud-client bash
|
||||
|
||||
ENV USER_NAME=nextcloudclient
|
||||
ENV USER_UID=1000
|
||||
ENV USER_GID=1000
|
||||
ENV NEXTCLOUD_USERNAME=username
|
||||
ENV NEXTCLOUD_PASSWORD=password
|
||||
ENV NEXTCLOUD_URL=https://nextcloud.example.com
|
||||
ENV NEXTCLOUD_DIR=/data
|
||||
ENV NEXTCLOUD_DIR_CHOWN=1
|
||||
ENV NEXTCLOUD_FORCE_TRUST=
|
||||
ENV NEXTCLOUD_HTTPPROXY=
|
||||
ENV NEXTCLOUD_UPLIMIT=
|
||||
ENV NEXTCLOUD_DOWNLIMIT=
|
||||
ENV NEXTCLOUD_EXCLUDEFILE=
|
||||
ENV NEXTCLOUD_UNSYNCFILE=
|
||||
ENV NEXTCLOUD_SILENT=
|
||||
ENV NEXTCLOUD_SLEEP=30
|
||||
ENV \
|
||||
USER_NAME=nextcloudclient \
|
||||
USER_UID=1000 \
|
||||
USER_GID=1000 \
|
||||
NEXTCLOUD_USERNAME=username \
|
||||
NEXTCLOUD_PASSWORD=password \
|
||||
NEXTCLOUD_URL=https://nextcloud.example.com \
|
||||
NEXTCLOUD_DIR=/data \
|
||||
NEXTCLOUD_DIR_CHOWN=1 \
|
||||
NEXTCLOUD_FORCE_TRUST= \
|
||||
NEXTCLOUD_HTTPPROXY= \
|
||||
NEXTCLOUD_UPLIMIT= \
|
||||
NEXTCLOUD_DOWNLIMIT= \
|
||||
NEXTCLOUD_EXCLUDEFILE= \
|
||||
NEXTCLOUD_UNSYNCFILE= \
|
||||
NEXTCLOUD_SILENT= \
|
||||
NEXTCLOUD_SLEEP=30
|
||||
|
||||
COPY start.sh /start.sh
|
||||
COPY entrypoint.sh start.sh /
|
||||
|
||||
ENTRYPOINT ["/bin/bash", "/start.sh"]
|
||||
ENTRYPOINT ["/bin/bash", "/entrypoint.sh"]
|
||||
|
|
|
@ -0,0 +1,41 @@
|
|||
#!/bin/bash
|
||||
|
||||
USER_NAME=${USER_NAME:-nextcloudclient}
|
||||
USER_GROUP=${USER_GROUP:-nextcloudgroup}
|
||||
USER_UID=${USER_UID:-1000}
|
||||
USER_GID=${USER_GID:-1000}
|
||||
NEXTCLOUD_SLEEP=${NEXTCLOUD_SLEEP:-30}
|
||||
|
||||
# check if group already exists
|
||||
GRP_NAME=$(getent group "${USER_GID}" )
|
||||
if [ "${GRP_NAME}" ] ; then
|
||||
USER_GROUP="${GRP_NAME//:*/}"
|
||||
else
|
||||
# if not, we create the group
|
||||
addgroup -g "${USER_GID}" "${USER_GROUP}"
|
||||
fi
|
||||
|
||||
# check if user already exists
|
||||
USR_NAME=$(getent passwd "${USER_UID}" )
|
||||
if [ "${USR_NAME}" ] ; then
|
||||
USER_NAME="${USR_NAME//:*/}"
|
||||
else
|
||||
# if not, we create the user
|
||||
adduser -s /bin/false -D -H -G "${USER_GROUP}" -u "${USER_UID}" "${USER_NAME}"
|
||||
fi
|
||||
|
||||
# create dir if not exists (it should exist if you mapped it outside the container)
|
||||
if [ ! -d "${NEXTCLOUD_DIR}" ] ; then
|
||||
mkdir -p "${NEXTCLOUD_DIR}"
|
||||
fi
|
||||
|
||||
# replace data directory permissions
|
||||
if [ "${NEXTCLOUD_DIR_CHOWN}" = "1" ] ; then
|
||||
chown -R "${USER_UID}":"${USER_GID}" "${NEXTCLOUD_DIR}"
|
||||
fi
|
||||
|
||||
# main loop
|
||||
while true; do
|
||||
/bin/su -s /bin/sh -c "/start.sh" "${USER_NAME}"
|
||||
sleep "${NEXTCLOUD_SLEEP}"
|
||||
done
|
77
start.sh
77
start.sh
|
@ -1,86 +1,49 @@
|
|||
#!/bin/bash
|
||||
|
||||
USER_NAME=${USER_NAME:-nextcloudclient}
|
||||
USER_GROUP=${USER_GROUP:-nextcloudgroup}
|
||||
USER_UID=${USER_UID:-1000}
|
||||
USER_GID=${USER_GID:-1000}
|
||||
NEXTCLOUD_USERNAME=${NEXTCLOUD_USERNAME:-username}
|
||||
NEXTCLOUD_PASSWORD=${NEXTCLOUD_PASSWORD:-password}
|
||||
NEXTCLOUD_URL=${NEXTCLOUD_URL:-https://nextcloud.example.com}
|
||||
NEXTCLOUD_DIR=${NEXTCLOUD_DIR:-/data}
|
||||
NEXTCLOUD_DIR_CHOWN=${NEXTCLOUD_DIR_CHOWN:-1}
|
||||
NEXTCLOUD_SLEEP=${NEXTCLOUD_SLEEP:-30}
|
||||
|
||||
# check if group already exists
|
||||
GRP_NAME=$(getent group "${USER_GID}" )
|
||||
if [ "${GRP_NAME}" ] ; then
|
||||
USER_GROUP=$( echo "${GRP_NAME}" | sed 's/\:.*//' )
|
||||
else
|
||||
# if not, we create the group
|
||||
addgroup -g "${USER_GID}" "${USER_GROUP}"
|
||||
fi
|
||||
|
||||
# check if user already exists
|
||||
USR_NAME=$(getent passwd "${USER_UID}" )
|
||||
if [ "${USR_NAME}" ] ; then
|
||||
USER_NAME=$( echo "${USR_NAME}" | sed 's/\:.*//' )
|
||||
else
|
||||
# if not, we create the user
|
||||
adduser -s /bin/false -D -H -G "${USER_GROUP}" -u "${USER_UID}" "${USER_NAME}"
|
||||
fi
|
||||
|
||||
# create dir if not exists (it should exist if you mapped it outside the container)
|
||||
if [ ! -d "${NEXTCLOUD_DIR}" ] ; then
|
||||
mkdir -p "${NEXTCLOUD_DIR}"
|
||||
fi
|
||||
|
||||
# replace data directory permissions
|
||||
if [ "${NEXTCLOUD_DIR_CHOWN}" = "1" ] ; then
|
||||
chown -R "${USER_UID}":"${USER_GID}" "${NEXTCLOUD_DIR}"
|
||||
fi
|
||||
|
||||
PARAMS=()
|
||||
if [ "${NEXTCLOUD_FORCE_TRUST}" = "1" ] ; then
|
||||
PARAMS+="--trust"
|
||||
PARAMS+=("--trust")
|
||||
fi
|
||||
if [ ! "${NEXTCLOUD_HTTPPROXY}" = "" ] ; then
|
||||
PARAMS+="--httpproxy"
|
||||
PARAMS+="${NEXTCLOUD_HTTPPROXY}"
|
||||
PARAMS+=("--httpproxy")
|
||||
PARAMS+=("${NEXTCLOUD_HTTPPROXY}")
|
||||
fi
|
||||
if [ ! "${NEXTCLOUD_UPLIMIT}" = "" ] ; then
|
||||
PARAMS+="--uplimit"
|
||||
PARAMS+="${NEXTCLOUD_UPLIMIT}"
|
||||
PARAMS+=("--uplimit")
|
||||
PARAMS+=("${NEXTCLOUD_UPLIMIT}")
|
||||
fi
|
||||
if [ ! "${NEXTCLOUD_DOWNLIMIT}" = "" ] ; then
|
||||
PARAMS+="--downlimit"
|
||||
PARAMS+="${NEXTCLOUD_DOWNLIMIT}"
|
||||
PARAMS+=("--downlimit")
|
||||
PARAMS+=("${NEXTCLOUD_DOWNLIMIT}")
|
||||
fi
|
||||
if [ ! "${NEXTCLOUD_EXCLUDEFILE}" = "" ] ; then
|
||||
if [ -r "${NEXTCLOUD_EXCLUDEFILE}" ] ; then
|
||||
PARAMS+="--exclude"
|
||||
PARAMS+="${NEXTCLOUD_EXCLUDEFILE}"
|
||||
PARAMS+=("--exclude")
|
||||
PARAMS+=("${NEXTCLOUD_EXCLUDEFILE}")
|
||||
fi
|
||||
fi
|
||||
if [ ! "${NEXTCLOUD_UNSYNCFILE}" = "" ] ; then
|
||||
if [ -r "${NEXTCLOUD_UNSYNCFILE}" ] ; then
|
||||
PARAMS+="--unsyncedfolders"
|
||||
PARAMS+="'${NEXTCLOUD_UNSYNCFILE}'"
|
||||
PARAMS+=("--unsyncedfolders")
|
||||
PARAMS+=("${NEXTCLOUD_UNSYNCFILE}")
|
||||
fi
|
||||
fi
|
||||
if [ "${NEXTCLOUD_SILENT}" = "1" ] ; then
|
||||
PARAMS+="--silent"
|
||||
PARAMS+=("--silent")
|
||||
fi
|
||||
|
||||
PARAMS+="--non-interactive"
|
||||
PARAMS+="-u"
|
||||
PARAMS+="${NEXTCLOUD_USERNAME}"
|
||||
PARAMS+="-p"
|
||||
PARAMS+="${NEXTCLOUD_PASSWORD}"
|
||||
PARAMS+="${NEXTCLOUD_DIR}"
|
||||
PARAMS+="${NEXTCLOUD_URL}"
|
||||
PARAMS+=("--non-interactive")
|
||||
PARAMS+=("-u")
|
||||
PARAMS+=("${NEXTCLOUD_USERNAME}")
|
||||
PARAMS+=("-p")
|
||||
PARAMS+=("${NEXTCLOUD_PASSWORD}")
|
||||
PARAMS+=("${NEXTCLOUD_DIR}")
|
||||
PARAMS+=("${NEXTCLOUD_URL}")
|
||||
|
||||
# main loop
|
||||
while true; do
|
||||
/bin/su -s /bin/sh "${USER_NAME}" -c "/usr/bin/nextcloudcmd ${PARAMS[@]}"
|
||||
sleep "${NEXTCLOUD_SLEEP}"
|
||||
done
|
||||
/usr/bin/nextcloudcmd "${PARAMS[@]}"
|
||||
|
|
Loading…
Reference in New Issue