vaultwarden : tentative de standardisation++
This commit is contained in:
parent
3680cace09
commit
73d617216b
|
@ -39,16 +39,16 @@ SMTP_SECURITY=off
|
||||||
SMTP_PORT=25
|
SMTP_PORT=25
|
||||||
EOT
|
EOT
|
||||||
|
|
||||||
export vaultwarden_image
|
export service_image
|
||||||
export vaultwarden_version
|
export service_version
|
||||||
export database_image
|
export database_image
|
||||||
export database_version
|
export database_version
|
||||||
export database_path
|
export database_path
|
||||||
export container_name
|
export container_name
|
||||||
export db_container_name
|
export db_container_name
|
||||||
|
|
||||||
if ! podman image exists ${vaultwarden_image}:${vaultwarden_version}; then
|
if ! podman image exists ${service_image}:${service_version}; then
|
||||||
podman image pull ${vaultwarden_image}:${vaultwarden_version} || exit 1
|
podman image pull ${service_image}:${service_version} || exit 1
|
||||||
fi
|
fi
|
||||||
if ! podman image exists ${database_image}:${database_version}; then
|
if ! podman image exists ${database_image}:${database_version}; then
|
||||||
podman image pull ${database_image}:${database_version} || exit 1
|
podman image pull ${database_image}:${database_version} || exit 1
|
||||||
|
|
64
podman-vaultwarden/50_update.sh
Executable file
64
podman-vaultwarden/50_update.sh
Executable file
|
@ -0,0 +1,64 @@
|
||||||
|
#!/usr/bin/env bash
|
||||||
|
|
||||||
|
ABSDIR="$( dirname "$(readlink -f -- "$0")" )"
|
||||||
|
source "${ABSDIR}"/../functions.sh
|
||||||
|
source "${ABSDIR}"/vars.sh
|
||||||
|
|
||||||
|
ensure_pwd_is_scriptdir
|
||||||
|
ensure_not_root
|
||||||
|
|
||||||
|
ensure_pod_exists "${pod_name}"
|
||||||
|
ensure_systemd_unit_exists "${service_name}"
|
||||||
|
ensure_variables_are_defined "$envvars"
|
||||||
|
|
||||||
|
current_version=$(podman container list -a --format "{{.Image}}" | grep -F "${service_image}" | awk -F: '{print $NF}')
|
||||||
|
|
||||||
|
reinstall_please () {
|
||||||
|
for image in ${upstream_images}; do
|
||||||
|
if ! podman image exists "${service_image}":"${service_version}"; then
|
||||||
|
podman image pull "${service_image}":"${service_version}" || exit 1
|
||||||
|
fi
|
||||||
|
done &&
|
||||||
|
check_pod_running "${pod_name}" && ./40_stop.sh
|
||||||
|
./70_disable.sh && \
|
||||||
|
./80_destroy.sh && \
|
||||||
|
./10_install.sh && \
|
||||||
|
./20_enable.sh && \
|
||||||
|
./30_start.sh
|
||||||
|
}
|
||||||
|
|
||||||
|
cleanup_images () {
|
||||||
|
echo "Remove ${current_version} images?"
|
||||||
|
select yn in "Yes" "No"; do
|
||||||
|
case $yn in
|
||||||
|
Yes)
|
||||||
|
podman image rm "${service_image}":"${current_version}"
|
||||||
|
exit 0
|
||||||
|
;;
|
||||||
|
No)
|
||||||
|
exit 0
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
done
|
||||||
|
}
|
||||||
|
|
||||||
|
if [ "${current_version}" != "${service_version}" ]; then
|
||||||
|
if [[ "${current_version}" > "${service_version}" ]]; then
|
||||||
|
echo "WARNING : you are about to DOWNGRADE your installation"
|
||||||
|
fi
|
||||||
|
echo "Migrating from ${current_version} to ${service_version}. Proceed?"
|
||||||
|
select yn in "Yes" "No"; do
|
||||||
|
case $yn in
|
||||||
|
Yes)
|
||||||
|
reinstall_please && \
|
||||||
|
cleanup_images
|
||||||
|
exit 0
|
||||||
|
;;
|
||||||
|
No)
|
||||||
|
exit 0
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
done
|
||||||
|
else
|
||||||
|
echo "Already using version ${service_version}. Exiting."
|
||||||
|
fi
|
|
@ -9,11 +9,11 @@ ensure_not_root
|
||||||
|
|
||||||
buildfolder=/tmp/vaultwarden-$$
|
buildfolder=/tmp/vaultwarden-$$
|
||||||
|
|
||||||
if ! podman image exists ${vaultwarden_image}:${vaultwarden_version}; then
|
if ! podman image exists ${service_image}:${service_version}; then
|
||||||
mkdir ${buildfolder} &&
|
mkdir ${buildfolder} &&
|
||||||
if git clone --depth=1 --branch=${vaultwarden_version} https://github.com/dani-garcia/vaultwarden.git ${buildfolder}/ ; then
|
if git clone --depth=1 --branch=${service_version} https://github.com/dani-garcia/vaultwarden.git ${buildfolder}/ ; then
|
||||||
TMPDIR=${HOME} podman image build \
|
TMPDIR=${HOME} podman image build \
|
||||||
-t ${vaultwarden_image}:${vaultwarden_version} \
|
-t ${service_image}:${service_version} \
|
||||||
--build-arg DB=postgresql,enable_mimalloc \
|
--build-arg DB=postgresql,enable_mimalloc \
|
||||||
-f ${buildfolder}/docker/amd64/Dockerfile.alpine \
|
-f ${buildfolder}/docker/amd64/Dockerfile.alpine \
|
||||||
${buildfolder} || retval=false
|
${buildfolder} || retval=false
|
||||||
|
@ -26,7 +26,7 @@ if ! podman image exists ${vaultwarden_image}:${vaultwarden_version}; then
|
||||||
podman image rm -f "$(podman image list -a -q -- dockerio/library/alpine)"
|
podman image rm -f "$(podman image list -a -q -- dockerio/library/alpine)"
|
||||||
eval "$retval"
|
eval "$retval"
|
||||||
else
|
else
|
||||||
echo "Image ${vaultwarden_image}:${vaultwarden_version} already built"
|
echo "Image ${service_image}:${service_version} already built"
|
||||||
fi &&
|
fi &&
|
||||||
|
|
||||||
oci_push_to_registry ${vaultwarden_image}:${vaultwarden_version}
|
oci_push_to_registry ${service_image}:${service_version}
|
||||||
|
|
|
@ -14,7 +14,7 @@ services:
|
||||||
|
|
||||||
app:
|
app:
|
||||||
container_name: ${container_name}
|
container_name: ${container_name}
|
||||||
image: ${vaultwarden_image}:${vaultwarden_version}
|
image: ${service_image}:${service_version}
|
||||||
volumes:
|
volumes:
|
||||||
- data:/data:Z
|
- data:/data:Z
|
||||||
ports:
|
ports:
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
#!/usr/bin/env bash
|
#!/usr/bin/env bash
|
||||||
## vars
|
## vars
|
||||||
vaultwarden_image="git.garbaye.fr/garbaye/vaultwarden"
|
service_image="git.garbaye.fr/garbaye/vaultwarden"
|
||||||
vaultwarden_version='1.29.1'
|
service_version='1.29.1'
|
||||||
database_image="docker.io/library/postgres"
|
database_image="docker.io/library/postgres"
|
||||||
database_version='14-alpine'
|
database_version='14-alpine'
|
||||||
database_path="/var/lib/postgresql/data"
|
database_path="/var/lib/postgresql/data"
|
||||||
|
@ -20,7 +20,7 @@ envvars='GARBAYE_VAULTWARDEN_ADMIN_PASSWORD GARBAYE_VAULTWARDEN_DATABASE_PASSWOR
|
||||||
project_name=${PWD##*/}
|
project_name=${PWD##*/}
|
||||||
pod_name="pod_${project_name}"
|
pod_name="pod_${project_name}"
|
||||||
service_name="pod-${pod_name}.service"
|
service_name="pod-${pod_name}.service"
|
||||||
upstream_images="${vaultwarden_image} ${postgres_image}"
|
upstream_images="${service_image} ${database_image}"
|
||||||
datavolume="${project_name}_data"
|
datavolume="${project_name}_data"
|
||||||
dbvolume="${project_name}_database"
|
dbvolume="${project_name}_database"
|
||||||
container_name="${project_name}_app"
|
container_name="${project_name}_app"
|
||||||
|
|
Loading…
Reference in a new issue