Compare commits

...

11 Commits

Author SHA1 Message Date
Paolo Asperti 66a33f797e
test cache_from
continuous-integration/drone/tag Build is passing Details
2023-11-09 18:17:37 +01:00
Paolo Asperti 926aaa0983
test layer squash
continuous-integration/drone/tag Build is passing Details
2023-11-09 18:12:06 +01:00
Paolo Asperti 49d431dc58
splitted entrypoint
continuous-integration/drone/tag Build is passing Details
2023-11-09 18:05:53 +01:00
Paolo Asperti 5ae52fa449
fix start script
continuous-integration/drone/tag Build is passing Details
2023-11-09 17:36:12 +01:00
Paolo Asperti 8f2239014e
only one env line = less layers 2023-11-09 17:30:40 +01:00
Paolo Asperti ddb252d701
fix start script
continuous-integration/drone/tag Build is passing Details
2023-11-09 17:27:11 +01:00
Paolo Asperti 8e9a8a90ee
alpine upgrade 2023-11-09 17:26:58 +01:00
Paolo Asperti 5a3af2a55e
trigger build from cron 2023-11-09 16:30:17 +01:00
Paolo Asperti b6efb7a160
fix param generation
continuous-integration/drone/tag Build is passing Details
2023-11-09 16:27:05 +01:00
Paolo Asperti e2006e0304
ake shellcheck happy 2023-11-09 16:17:01 +01:00
Paolo Asperti 93fd089c2f
keep only latest docker image
continuous-integration/drone/tag Build is passing Details
2022-03-10 14:40:47 +01:00
4 changed files with 86 additions and 70 deletions

View File

@ -14,10 +14,10 @@ steps:
repo: docker.asperti.com/paspo/nextcloudclient
tags:
- latest
- ${DRONE_TAG}
- ${DRONE_SEMVER_MAJOR}.${DRONE_SEMVER_MINOR}
force_tag: true
cache_from: docker.asperti.com/paspo/nextcloudclient
trigger:
event:
- tag
- cron

View File

@ -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
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/sh", "/start.sh"]
ENTRYPOINT ["/bin/bash", "/entrypoint.sh"]

41
entrypoint.sh Executable file
View File

@ -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

View File

@ -1,75 +1,49 @@
#!/bin/sh
#!/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=
PARAMS=()
if [ "${NEXTCLOUD_FORCE_TRUST}" = "1" ] ; then
PARAMS="${PARAMS} --trust"
PARAMS+=("--trust")
fi
if [ ! "${NEXTCLOUD_HTTPPROXY}" = "" ] ; then
PARAMS="${PARAMS} --httpproxy '${NEXTCLOUD_HTTPPROXY}'"
PARAMS+=("--httpproxy")
PARAMS+=("${NEXTCLOUD_HTTPPROXY}")
fi
if [ ! "${NEXTCLOUD_UPLIMIT}" = "" ] ; then
PARAMS="${PARAMS} --uplimit '${NEXTCLOUD_UPLIMIT}'"
PARAMS+=("--uplimit")
PARAMS+=("${NEXTCLOUD_UPLIMIT}")
fi
if [ ! "${NEXTCLOUD_DOWNLIMIT}" = "" ] ; then
PARAMS="${PARAMS} --downlimit '${NEXTCLOUD_DOWNLIMIT}'"
PARAMS+=("--downlimit")
PARAMS+=("${NEXTCLOUD_DOWNLIMIT}")
fi
if [ ! "${NEXTCLOUD_EXCLUDEFILE}" = "" ] ; then
if [ -r "${NEXTCLOUD_EXCLUDEFILE}" ] ; then
PARAMS="${PARAMS} --exclude '${NEXTCLOUD_EXCLUDEFILE}'"
PARAMS+=("--exclude")
PARAMS+=("${NEXTCLOUD_EXCLUDEFILE}")
fi
fi
if [ ! "${NEXTCLOUD_UNSYNCFILE}" = "" ] ; then
if [ -r "${NEXTCLOUD_UNSYNCFILE}" ] ; then
PARAMS="${PARAMS} --unsyncedfolders '${NEXTCLOUD_UNSYNCFILE}'"
PARAMS+=("--unsyncedfolders")
PARAMS+=("${NEXTCLOUD_UNSYNCFILE}")
fi
fi
if [ "${NEXTCLOUD_SILENT}" = "1" ] ; then
PARAMS="${PARAMS} --silent"
PARAMS+=("--silent")
fi
PARAMS="${PARAMS} --non-interactive -u ${NEXTCLOUD_USERNAME} -p ${NEXTCLOUD_PASSWORD} ${NEXTCLOUD_DIR} ${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[@]}"