Browse Source
Merge pull request #2501 from BlackDex/add-persistent-volume-check-docker
Add a persistent volume check.
pull/2507/head
Daniel García
3 years ago
committed by
GitHub
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
18 changed files with
116 additions and
0 deletions
-
docker/Dockerfile.j2
-
docker/amd64/Dockerfile
-
docker/amd64/Dockerfile.alpine
-
docker/amd64/Dockerfile.buildx
-
docker/amd64/Dockerfile.buildx.alpine
-
docker/arm64/Dockerfile
-
docker/arm64/Dockerfile.alpine
-
docker/arm64/Dockerfile.buildx
-
docker/arm64/Dockerfile.buildx.alpine
-
docker/armv6/Dockerfile
-
docker/armv6/Dockerfile.alpine
-
docker/armv6/Dockerfile.buildx
-
docker/armv6/Dockerfile.buildx.alpine
-
docker/armv7/Dockerfile
-
docker/armv7/Dockerfile.alpine
-
docker/armv7/Dockerfile.buildx
-
docker/armv7/Dockerfile.buildx.alpine
-
src/main.rs
|
|
@ -238,6 +238,12 @@ VOLUME /data |
|
|
|
EXPOSE 80 |
|
|
|
EXPOSE 3012 |
|
|
|
|
|
|
|
# Create a special empty file which we check within the application. |
|
|
|
# If this file exists, then we exit Vaultwarden to prevent data loss when someone forgets to use volumes. |
|
|
|
# If you really really want to use volatile storage you can set the env `I_REALLY_WANT_VOLATILE_STORAGE=true` |
|
|
|
# This file should disappear if a volume is mounted on-top of this using a docker volume. |
|
|
|
RUN touch /data/vaultwarden_docker_persistent_volume_check |
|
|
|
|
|
|
|
# Copies the files from the context (Rocket.toml file and web-vault) |
|
|
|
# and the binary from the "build" stage to the current stage |
|
|
|
WORKDIR / |
|
|
|
|
|
@ -112,6 +112,12 @@ VOLUME /data |
|
|
|
EXPOSE 80 |
|
|
|
EXPOSE 3012 |
|
|
|
|
|
|
|
# Create a special empty file which we check within the application. |
|
|
|
# If this file exists, then we exit Vaultwarden to prevent data loss when someone forgets to use volumes. |
|
|
|
# If you really really want to use volatile storage you can set the env `I_REALLY_WANT_VOLATILE_STORAGE=true` |
|
|
|
# This file should disappear if a volume is mounted on-top of this using a docker volume. |
|
|
|
RUN touch /data/vaultwarden_docker_persistent_volume_check |
|
|
|
|
|
|
|
# Copies the files from the context (Rocket.toml file and web-vault) |
|
|
|
# and the binary from the "build" stage to the current stage |
|
|
|
WORKDIR / |
|
|
|
|
|
@ -104,6 +104,12 @@ VOLUME /data |
|
|
|
EXPOSE 80 |
|
|
|
EXPOSE 3012 |
|
|
|
|
|
|
|
# Create a special empty file which we check within the application. |
|
|
|
# If this file exists, then we exit Vaultwarden to prevent data loss when someone forgets to use volumes. |
|
|
|
# If you really really want to use volatile storage you can set the env `I_REALLY_WANT_VOLATILE_STORAGE=true` |
|
|
|
# This file should disappear if a volume is mounted on-top of this using a docker volume. |
|
|
|
RUN touch /data/vaultwarden_docker_persistent_volume_check |
|
|
|
|
|
|
|
# Copies the files from the context (Rocket.toml file and web-vault) |
|
|
|
# and the binary from the "build" stage to the current stage |
|
|
|
WORKDIR / |
|
|
|
|
|
@ -112,6 +112,12 @@ VOLUME /data |
|
|
|
EXPOSE 80 |
|
|
|
EXPOSE 3012 |
|
|
|
|
|
|
|
# Create a special empty file which we check within the application. |
|
|
|
# If this file exists, then we exit Vaultwarden to prevent data loss when someone forgets to use volumes. |
|
|
|
# If you really really want to use volatile storage you can set the env `I_REALLY_WANT_VOLATILE_STORAGE=true` |
|
|
|
# This file should disappear if a volume is mounted on-top of this using a docker volume. |
|
|
|
RUN touch /data/vaultwarden_docker_persistent_volume_check |
|
|
|
|
|
|
|
# Copies the files from the context (Rocket.toml file and web-vault) |
|
|
|
# and the binary from the "build" stage to the current stage |
|
|
|
WORKDIR / |
|
|
|
|
|
@ -104,6 +104,12 @@ VOLUME /data |
|
|
|
EXPOSE 80 |
|
|
|
EXPOSE 3012 |
|
|
|
|
|
|
|
# Create a special empty file which we check within the application. |
|
|
|
# If this file exists, then we exit Vaultwarden to prevent data loss when someone forgets to use volumes. |
|
|
|
# If you really really want to use volatile storage you can set the env `I_REALLY_WANT_VOLATILE_STORAGE=true` |
|
|
|
# This file should disappear if a volume is mounted on-top of this using a docker volume. |
|
|
|
RUN touch /data/vaultwarden_docker_persistent_volume_check |
|
|
|
|
|
|
|
# Copies the files from the context (Rocket.toml file and web-vault) |
|
|
|
# and the binary from the "build" stage to the current stage |
|
|
|
WORKDIR / |
|
|
|
|
|
@ -136,6 +136,12 @@ VOLUME /data |
|
|
|
EXPOSE 80 |
|
|
|
EXPOSE 3012 |
|
|
|
|
|
|
|
# Create a special empty file which we check within the application. |
|
|
|
# If this file exists, then we exit Vaultwarden to prevent data loss when someone forgets to use volumes. |
|
|
|
# If you really really want to use volatile storage you can set the env `I_REALLY_WANT_VOLATILE_STORAGE=true` |
|
|
|
# This file should disappear if a volume is mounted on-top of this using a docker volume. |
|
|
|
RUN touch /data/vaultwarden_docker_persistent_volume_check |
|
|
|
|
|
|
|
# Copies the files from the context (Rocket.toml file and web-vault) |
|
|
|
# and the binary from the "build" stage to the current stage |
|
|
|
WORKDIR / |
|
|
|
|
|
@ -108,6 +108,12 @@ VOLUME /data |
|
|
|
EXPOSE 80 |
|
|
|
EXPOSE 3012 |
|
|
|
|
|
|
|
# Create a special empty file which we check within the application. |
|
|
|
# If this file exists, then we exit Vaultwarden to prevent data loss when someone forgets to use volumes. |
|
|
|
# If you really really want to use volatile storage you can set the env `I_REALLY_WANT_VOLATILE_STORAGE=true` |
|
|
|
# This file should disappear if a volume is mounted on-top of this using a docker volume. |
|
|
|
RUN touch /data/vaultwarden_docker_persistent_volume_check |
|
|
|
|
|
|
|
# Copies the files from the context (Rocket.toml file and web-vault) |
|
|
|
# and the binary from the "build" stage to the current stage |
|
|
|
WORKDIR / |
|
|
|
|
|
@ -136,6 +136,12 @@ VOLUME /data |
|
|
|
EXPOSE 80 |
|
|
|
EXPOSE 3012 |
|
|
|
|
|
|
|
# Create a special empty file which we check within the application. |
|
|
|
# If this file exists, then we exit Vaultwarden to prevent data loss when someone forgets to use volumes. |
|
|
|
# If you really really want to use volatile storage you can set the env `I_REALLY_WANT_VOLATILE_STORAGE=true` |
|
|
|
# This file should disappear if a volume is mounted on-top of this using a docker volume. |
|
|
|
RUN touch /data/vaultwarden_docker_persistent_volume_check |
|
|
|
|
|
|
|
# Copies the files from the context (Rocket.toml file and web-vault) |
|
|
|
# and the binary from the "build" stage to the current stage |
|
|
|
WORKDIR / |
|
|
|
|
|
@ -108,6 +108,12 @@ VOLUME /data |
|
|
|
EXPOSE 80 |
|
|
|
EXPOSE 3012 |
|
|
|
|
|
|
|
# Create a special empty file which we check within the application. |
|
|
|
# If this file exists, then we exit Vaultwarden to prevent data loss when someone forgets to use volumes. |
|
|
|
# If you really really want to use volatile storage you can set the env `I_REALLY_WANT_VOLATILE_STORAGE=true` |
|
|
|
# This file should disappear if a volume is mounted on-top of this using a docker volume. |
|
|
|
RUN touch /data/vaultwarden_docker_persistent_volume_check |
|
|
|
|
|
|
|
# Copies the files from the context (Rocket.toml file and web-vault) |
|
|
|
# and the binary from the "build" stage to the current stage |
|
|
|
WORKDIR / |
|
|
|
|
|
@ -141,6 +141,12 @@ VOLUME /data |
|
|
|
EXPOSE 80 |
|
|
|
EXPOSE 3012 |
|
|
|
|
|
|
|
# Create a special empty file which we check within the application. |
|
|
|
# If this file exists, then we exit Vaultwarden to prevent data loss when someone forgets to use volumes. |
|
|
|
# If you really really want to use volatile storage you can set the env `I_REALLY_WANT_VOLATILE_STORAGE=true` |
|
|
|
# This file should disappear if a volume is mounted on-top of this using a docker volume. |
|
|
|
RUN touch /data/vaultwarden_docker_persistent_volume_check |
|
|
|
|
|
|
|
# Copies the files from the context (Rocket.toml file and web-vault) |
|
|
|
# and the binary from the "build" stage to the current stage |
|
|
|
WORKDIR / |
|
|
|
|
|
@ -110,6 +110,12 @@ VOLUME /data |
|
|
|
EXPOSE 80 |
|
|
|
EXPOSE 3012 |
|
|
|
|
|
|
|
# Create a special empty file which we check within the application. |
|
|
|
# If this file exists, then we exit Vaultwarden to prevent data loss when someone forgets to use volumes. |
|
|
|
# If you really really want to use volatile storage you can set the env `I_REALLY_WANT_VOLATILE_STORAGE=true` |
|
|
|
# This file should disappear if a volume is mounted on-top of this using a docker volume. |
|
|
|
RUN touch /data/vaultwarden_docker_persistent_volume_check |
|
|
|
|
|
|
|
# Copies the files from the context (Rocket.toml file and web-vault) |
|
|
|
# and the binary from the "build" stage to the current stage |
|
|
|
WORKDIR / |
|
|
|
|
|
@ -141,6 +141,12 @@ VOLUME /data |
|
|
|
EXPOSE 80 |
|
|
|
EXPOSE 3012 |
|
|
|
|
|
|
|
# Create a special empty file which we check within the application. |
|
|
|
# If this file exists, then we exit Vaultwarden to prevent data loss when someone forgets to use volumes. |
|
|
|
# If you really really want to use volatile storage you can set the env `I_REALLY_WANT_VOLATILE_STORAGE=true` |
|
|
|
# This file should disappear if a volume is mounted on-top of this using a docker volume. |
|
|
|
RUN touch /data/vaultwarden_docker_persistent_volume_check |
|
|
|
|
|
|
|
# Copies the files from the context (Rocket.toml file and web-vault) |
|
|
|
# and the binary from the "build" stage to the current stage |
|
|
|
WORKDIR / |
|
|
|
|
|
@ -110,6 +110,12 @@ VOLUME /data |
|
|
|
EXPOSE 80 |
|
|
|
EXPOSE 3012 |
|
|
|
|
|
|
|
# Create a special empty file which we check within the application. |
|
|
|
# If this file exists, then we exit Vaultwarden to prevent data loss when someone forgets to use volumes. |
|
|
|
# If you really really want to use volatile storage you can set the env `I_REALLY_WANT_VOLATILE_STORAGE=true` |
|
|
|
# This file should disappear if a volume is mounted on-top of this using a docker volume. |
|
|
|
RUN touch /data/vaultwarden_docker_persistent_volume_check |
|
|
|
|
|
|
|
# Copies the files from the context (Rocket.toml file and web-vault) |
|
|
|
# and the binary from the "build" stage to the current stage |
|
|
|
WORKDIR / |
|
|
|
|
|
@ -136,6 +136,12 @@ VOLUME /data |
|
|
|
EXPOSE 80 |
|
|
|
EXPOSE 3012 |
|
|
|
|
|
|
|
# Create a special empty file which we check within the application. |
|
|
|
# If this file exists, then we exit Vaultwarden to prevent data loss when someone forgets to use volumes. |
|
|
|
# If you really really want to use volatile storage you can set the env `I_REALLY_WANT_VOLATILE_STORAGE=true` |
|
|
|
# This file should disappear if a volume is mounted on-top of this using a docker volume. |
|
|
|
RUN touch /data/vaultwarden_docker_persistent_volume_check |
|
|
|
|
|
|
|
# Copies the files from the context (Rocket.toml file and web-vault) |
|
|
|
# and the binary from the "build" stage to the current stage |
|
|
|
WORKDIR / |
|
|
|
|
|
@ -108,6 +108,12 @@ VOLUME /data |
|
|
|
EXPOSE 80 |
|
|
|
EXPOSE 3012 |
|
|
|
|
|
|
|
# Create a special empty file which we check within the application. |
|
|
|
# If this file exists, then we exit Vaultwarden to prevent data loss when someone forgets to use volumes. |
|
|
|
# If you really really want to use volatile storage you can set the env `I_REALLY_WANT_VOLATILE_STORAGE=true` |
|
|
|
# This file should disappear if a volume is mounted on-top of this using a docker volume. |
|
|
|
RUN touch /data/vaultwarden_docker_persistent_volume_check |
|
|
|
|
|
|
|
# Copies the files from the context (Rocket.toml file and web-vault) |
|
|
|
# and the binary from the "build" stage to the current stage |
|
|
|
WORKDIR / |
|
|
|
|
|
@ -136,6 +136,12 @@ VOLUME /data |
|
|
|
EXPOSE 80 |
|
|
|
EXPOSE 3012 |
|
|
|
|
|
|
|
# Create a special empty file which we check within the application. |
|
|
|
# If this file exists, then we exit Vaultwarden to prevent data loss when someone forgets to use volumes. |
|
|
|
# If you really really want to use volatile storage you can set the env `I_REALLY_WANT_VOLATILE_STORAGE=true` |
|
|
|
# This file should disappear if a volume is mounted on-top of this using a docker volume. |
|
|
|
RUN touch /data/vaultwarden_docker_persistent_volume_check |
|
|
|
|
|
|
|
# Copies the files from the context (Rocket.toml file and web-vault) |
|
|
|
# and the binary from the "build" stage to the current stage |
|
|
|
WORKDIR / |
|
|
|
|
|
@ -108,6 +108,12 @@ VOLUME /data |
|
|
|
EXPOSE 80 |
|
|
|
EXPOSE 3012 |
|
|
|
|
|
|
|
# Create a special empty file which we check within the application. |
|
|
|
# If this file exists, then we exit Vaultwarden to prevent data loss when someone forgets to use volumes. |
|
|
|
# If you really really want to use volatile storage you can set the env `I_REALLY_WANT_VOLATILE_STORAGE=true` |
|
|
|
# This file should disappear if a volume is mounted on-top of this using a docker volume. |
|
|
|
RUN touch /data/vaultwarden_docker_persistent_volume_check |
|
|
|
|
|
|
|
# Copies the files from the context (Rocket.toml file and web-vault) |
|
|
|
# and the binary from the "build" stage to the current stage |
|
|
|
WORKDIR / |
|
|
|
|
|
@ -276,6 +276,20 @@ fn check_data_folder() { |
|
|
|
} |
|
|
|
exit(1); |
|
|
|
} |
|
|
|
|
|
|
|
let persistent_volume_check_file = format!("{data_folder}/vaultwarden_docker_persistent_volume_check"); |
|
|
|
let check_file = Path::new(&persistent_volume_check_file); |
|
|
|
if check_file.exists() && std::env::var("I_REALLY_WANT_VOLATILE_STORAGE").is_err() { |
|
|
|
error!( |
|
|
|
"No persistent volume!\n\ |
|
|
|
########################################################################################\n\ |
|
|
|
# It looks like you did not configure a persistent volume! #\n\ |
|
|
|
# This will result in permanent data loss when the container is removed or updated! #\n\ |
|
|
|
# If you really want to use volatile storage set `I_REALLY_WANT_VOLATILE_STORAGE=true` #\n\ |
|
|
|
########################################################################################\n" |
|
|
|
); |
|
|
|
exit(1); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
fn check_rsa_keys() -> Result<(), crate::error::Error> { |
|
|
|