fix(Dockerfile.rootless): revert to default path for `app.ini`
The current path of the `$GITEA_APP_INI` configuration file makes the forgejo application reset every time the container is restarted, unless a specific volume for this file is created. Consider the following: * This quirk is not documented * All configuration data resides in `/var/lib/gitea` * The custom configuration path defaults to `/var/lib/gitea/custom/conf` (see `forgejo -h`) * Containers mounting the volume `-v /foo/bar:/var/lib/gitea` already have this file available to modify. Another volume shouldn't be required * Containers using named volumes can use `docker cp` to modify the file inside the volume, if desired For these reasons, it makes more sense to use the default path for `$GITEA_APP_INI` rather than require users to create a dedicated volume for the file. Revert it back to its default while maintaining backwards compatibility (users can update by simply moving the file to the new path).
This commit is contained in:
parent
d6c36ec406
commit
dad16cd589
|
@ -100,8 +100,11 @@ ENV GITEA_CUSTOM /var/lib/gitea/custom
|
||||||
ENV GITEA_TEMP /tmp/gitea
|
ENV GITEA_TEMP /tmp/gitea
|
||||||
ENV TMPDIR /tmp/gitea
|
ENV TMPDIR /tmp/gitea
|
||||||
|
|
||||||
#TODO add to docs the ability to define the ini to load (useful to test and revert a config)
|
# Legacy config file for backwards compatibility
|
||||||
ENV GITEA_APP_INI /etc/gitea/app.ini
|
# TODO: remove on next major version release
|
||||||
|
ENV GITEA_APP_INI_LEGACY /etc/gitea/app.ini
|
||||||
|
|
||||||
|
ENV GITEA_APP_INI ${GITEA_CUSTOM}/conf/app.ini
|
||||||
ENV HOME "/var/lib/gitea/git"
|
ENV HOME "/var/lib/gitea/git"
|
||||||
VOLUME ["/var/lib/gitea", "/etc/gitea"]
|
VOLUME ["/var/lib/gitea", "/etc/gitea"]
|
||||||
WORKDIR /var/lib/gitea
|
WORKDIR /var/lib/gitea
|
||||||
|
|
|
@ -13,5 +13,10 @@ fi
|
||||||
if [ $# -gt 0 ]; then
|
if [ $# -gt 0 ]; then
|
||||||
exec "$@"
|
exec "$@"
|
||||||
else
|
else
|
||||||
|
# TODO: remove on next major version release
|
||||||
|
# Honour legacy config file if existing
|
||||||
|
if [ -f ${GITEA_APP_INI_LEGACY} ]; then
|
||||||
|
GITEA_APP_INI=${GITEA_APP_INI_LEGACY}
|
||||||
|
fi
|
||||||
exec /usr/local/bin/gitea -c ${GITEA_APP_INI} web
|
exec /usr/local/bin/gitea -c ${GITEA_APP_INI} web
|
||||||
fi
|
fi
|
||||||
|
|
|
@ -11,6 +11,18 @@ mkdir -p ${GITEA_CUSTOM} && chmod 0700 ${GITEA_CUSTOM}
|
||||||
mkdir -p ${GITEA_TEMP} && chmod 0700 ${GITEA_TEMP}
|
mkdir -p ${GITEA_TEMP} && chmod 0700 ${GITEA_TEMP}
|
||||||
if [ ! -w ${GITEA_TEMP} ]; then echo "${GITEA_TEMP} is not writable"; exit 1; fi
|
if [ ! -w ${GITEA_TEMP} ]; then echo "${GITEA_TEMP} is not writable"; exit 1; fi
|
||||||
|
|
||||||
|
# TODO: remove on next major version release
|
||||||
|
# Honour legacy config file if existing, but inform the user
|
||||||
|
if [ -f ${GITEA_APP_INI_LEGACY} ] && [ ${GITEA_APP_INI} != ${GITEA_APP_INI_LEGACY} ]; then
|
||||||
|
GITEA_APP_INI_DEFAULT=/var/lib/gitea/custom/conf/app.ini
|
||||||
|
echo -e \
|
||||||
|
"\033[33mWARNING\033[0m: detected configuration file in deprecated default path ${GITEA_APP_INI_LEGACY}." \
|
||||||
|
"The new default is ${GITEA_APP_INI_DEFAULT}. To remove this warning, choose one of the options:\n" \
|
||||||
|
"* Move ${GITEA_APP_INI_LEGACY} to ${GITEA_APP_INI_DEFAULT} (or to \$GITEA_APP_INI if you want to override this variable)\n" \
|
||||||
|
"* Explicitly override GITEA_APP_INI=${GITEA_APP_INI_LEGACY} in the container environment"
|
||||||
|
GITEA_APP_INI=${GITEA_APP_INI_LEGACY}
|
||||||
|
fi
|
||||||
|
|
||||||
#Prepare config file
|
#Prepare config file
|
||||||
if [ ! -f ${GITEA_APP_INI} ]; then
|
if [ ! -f ${GITEA_APP_INI} ]; then
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,6 @@
|
||||||
|
Reverted the rootless container image path in `GITEA_APP_INI` from
|
||||||
|
`/etc/gitea/app.ini` to its default value of
|
||||||
|
`/var/lib/gitea/custom/conf/app.ini`. This allows container users to not have
|
||||||
|
to mount two separate volumes (one for the configuration data and one for the
|
||||||
|
configuration `.ini` file). A warning is issued for users with the legacy
|
||||||
|
configuration on how to update to the new path.
|
Loading…
Reference in New Issue