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 80 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					EXPOSE 3012 | 
					 | 
					 | 
					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) | 
					 | 
					 | 
					# Copies the files from the context (Rocket.toml file and web-vault) | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					# and the binary from the "build" stage to the current stage | 
					 | 
					 | 
					# and the binary from the "build" stage to the current stage | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					WORKDIR / | 
					 | 
					 | 
					WORKDIR / | 
				
			
			
		
	
	
		
		
			
				
					| 
						
							
								
							
						
						
						
					 | 
					
  | 
				
			
			
		
	
								
							
						
					 
					
				 
			 
		
			
			
			
			
			
			
				
				
					
						
							
								
									
	
		
		
			
				
					| 
						
						
							
								
							
						
						
					 | 
					@ -112,6 +112,12 @@ VOLUME /data | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					EXPOSE 80 | 
					 | 
					 | 
					EXPOSE 80 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					EXPOSE 3012 | 
					 | 
					 | 
					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) | 
					 | 
					 | 
					# Copies the files from the context (Rocket.toml file and web-vault) | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					# and the binary from the "build" stage to the current stage | 
					 | 
					 | 
					# and the binary from the "build" stage to the current stage | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					WORKDIR / | 
					 | 
					 | 
					WORKDIR / | 
				
			
			
		
	
	
		
		
			
				
					| 
						
							
								
							
						
						
						
					 | 
					
  | 
				
			
			
		
	
								
							
						
					 
					
				 
			 
		
			
			
			
			
			
			
				
				
					
						
							
								
									
	
		
		
			
				
					| 
						
						
							
								
							
						
						
					 | 
					@ -104,6 +104,12 @@ VOLUME /data | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					EXPOSE 80 | 
					 | 
					 | 
					EXPOSE 80 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					EXPOSE 3012 | 
					 | 
					 | 
					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) | 
					 | 
					 | 
					# Copies the files from the context (Rocket.toml file and web-vault) | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					# and the binary from the "build" stage to the current stage | 
					 | 
					 | 
					# and the binary from the "build" stage to the current stage | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					WORKDIR / | 
					 | 
					 | 
					WORKDIR / | 
				
			
			
		
	
	
		
		
			
				
					| 
						
							
								
							
						
						
						
					 | 
					
  | 
				
			
			
		
	
								
							
						
					 
					
				 
			 
		
			
			
			
			
			
			
				
				
					
						
							
								
									
	
		
		
			
				
					| 
						
						
							
								
							
						
						
					 | 
					@ -112,6 +112,12 @@ VOLUME /data | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					EXPOSE 80 | 
					 | 
					 | 
					EXPOSE 80 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					EXPOSE 3012 | 
					 | 
					 | 
					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) | 
					 | 
					 | 
					# Copies the files from the context (Rocket.toml file and web-vault) | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					# and the binary from the "build" stage to the current stage | 
					 | 
					 | 
					# and the binary from the "build" stage to the current stage | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					WORKDIR / | 
					 | 
					 | 
					WORKDIR / | 
				
			
			
		
	
	
		
		
			
				
					| 
						
							
								
							
						
						
						
					 | 
					
  | 
				
			
			
		
	
								
							
						
					 
					
				 
			 
		
			
			
			
			
			
			
				
				
					
						
							
								
									
	
		
		
			
				
					| 
						
						
							
								
							
						
						
					 | 
					@ -104,6 +104,12 @@ VOLUME /data | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					EXPOSE 80 | 
					 | 
					 | 
					EXPOSE 80 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					EXPOSE 3012 | 
					 | 
					 | 
					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) | 
					 | 
					 | 
					# Copies the files from the context (Rocket.toml file and web-vault) | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					# and the binary from the "build" stage to the current stage | 
					 | 
					 | 
					# and the binary from the "build" stage to the current stage | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					WORKDIR / | 
					 | 
					 | 
					WORKDIR / | 
				
			
			
		
	
	
		
		
			
				
					| 
						
							
								
							
						
						
						
					 | 
					
  | 
				
			
			
		
	
								
							
						
					 
					
				 
			 
		
			
			
			
			
			
			
				
				
					
						
							
								
									
	
		
		
			
				
					| 
						
						
							
								
							
						
						
					 | 
					@ -136,6 +136,12 @@ VOLUME /data | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					EXPOSE 80 | 
					 | 
					 | 
					EXPOSE 80 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					EXPOSE 3012 | 
					 | 
					 | 
					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) | 
					 | 
					 | 
					# Copies the files from the context (Rocket.toml file and web-vault) | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					# and the binary from the "build" stage to the current stage | 
					 | 
					 | 
					# and the binary from the "build" stage to the current stage | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					WORKDIR / | 
					 | 
					 | 
					WORKDIR / | 
				
			
			
		
	
	
		
		
			
				
					| 
						
							
								
							
						
						
						
					 | 
					
  | 
				
			
			
		
	
								
							
						
					 
					
				 
			 
		
			
			
			
			
			
			
				
				
					
						
							
								
									
	
		
		
			
				
					| 
						
						
							
								
							
						
						
					 | 
					@ -108,6 +108,12 @@ VOLUME /data | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					EXPOSE 80 | 
					 | 
					 | 
					EXPOSE 80 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					EXPOSE 3012 | 
					 | 
					 | 
					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) | 
					 | 
					 | 
					# Copies the files from the context (Rocket.toml file and web-vault) | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					# and the binary from the "build" stage to the current stage | 
					 | 
					 | 
					# and the binary from the "build" stage to the current stage | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					WORKDIR / | 
					 | 
					 | 
					WORKDIR / | 
				
			
			
		
	
	
		
		
			
				
					| 
						
							
								
							
						
						
						
					 | 
					
  | 
				
			
			
		
	
								
							
						
					 
					
				 
			 
		
			
			
			
			
			
			
				
				
					
						
							
								
									
	
		
		
			
				
					| 
						
						
							
								
							
						
						
					 | 
					@ -136,6 +136,12 @@ VOLUME /data | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					EXPOSE 80 | 
					 | 
					 | 
					EXPOSE 80 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					EXPOSE 3012 | 
					 | 
					 | 
					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) | 
					 | 
					 | 
					# Copies the files from the context (Rocket.toml file and web-vault) | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					# and the binary from the "build" stage to the current stage | 
					 | 
					 | 
					# and the binary from the "build" stage to the current stage | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					WORKDIR / | 
					 | 
					 | 
					WORKDIR / | 
				
			
			
		
	
	
		
		
			
				
					| 
						
							
								
							
						
						
						
					 | 
					
  | 
				
			
			
		
	
								
							
						
					 
					
				 
			 
		
			
			
			
			
			
			
				
				
					
						
							
								
									
	
		
		
			
				
					| 
						
						
							
								
							
						
						
					 | 
					@ -108,6 +108,12 @@ VOLUME /data | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					EXPOSE 80 | 
					 | 
					 | 
					EXPOSE 80 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					EXPOSE 3012 | 
					 | 
					 | 
					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) | 
					 | 
					 | 
					# Copies the files from the context (Rocket.toml file and web-vault) | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					# and the binary from the "build" stage to the current stage | 
					 | 
					 | 
					# and the binary from the "build" stage to the current stage | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					WORKDIR / | 
					 | 
					 | 
					WORKDIR / | 
				
			
			
		
	
	
		
		
			
				
					| 
						
							
								
							
						
						
						
					 | 
					
  | 
				
			
			
		
	
								
							
						
					 
					
				 
			 
		
			
			
			
			
			
			
				
				
					
						
							
								
									
	
		
		
			
				
					| 
						
						
							
								
							
						
						
					 | 
					@ -141,6 +141,12 @@ VOLUME /data | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					EXPOSE 80 | 
					 | 
					 | 
					EXPOSE 80 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					EXPOSE 3012 | 
					 | 
					 | 
					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) | 
					 | 
					 | 
					# Copies the files from the context (Rocket.toml file and web-vault) | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					# and the binary from the "build" stage to the current stage | 
					 | 
					 | 
					# and the binary from the "build" stage to the current stage | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					WORKDIR / | 
					 | 
					 | 
					WORKDIR / | 
				
			
			
		
	
	
		
		
			
				
					| 
						
							
								
							
						
						
						
					 | 
					
  | 
				
			
			
		
	
								
							
						
					 
					
				 
			 
		
			
			
			
			
			
			
				
				
					
						
							
								
									
	
		
		
			
				
					| 
						
						
							
								
							
						
						
					 | 
					@ -110,6 +110,12 @@ VOLUME /data | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					EXPOSE 80 | 
					 | 
					 | 
					EXPOSE 80 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					EXPOSE 3012 | 
					 | 
					 | 
					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) | 
					 | 
					 | 
					# Copies the files from the context (Rocket.toml file and web-vault) | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					# and the binary from the "build" stage to the current stage | 
					 | 
					 | 
					# and the binary from the "build" stage to the current stage | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					WORKDIR / | 
					 | 
					 | 
					WORKDIR / | 
				
			
			
		
	
	
		
		
			
				
					| 
						
							
								
							
						
						
						
					 | 
					
  | 
				
			
			
		
	
								
							
						
					 
					
				 
			 
		
			
			
			
			
			
			
				
				
					
						
							
								
									
	
		
		
			
				
					| 
						
						
							
								
							
						
						
					 | 
					@ -141,6 +141,12 @@ VOLUME /data | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					EXPOSE 80 | 
					 | 
					 | 
					EXPOSE 80 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					EXPOSE 3012 | 
					 | 
					 | 
					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) | 
					 | 
					 | 
					# Copies the files from the context (Rocket.toml file and web-vault) | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					# and the binary from the "build" stage to the current stage | 
					 | 
					 | 
					# and the binary from the "build" stage to the current stage | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					WORKDIR / | 
					 | 
					 | 
					WORKDIR / | 
				
			
			
		
	
	
		
		
			
				
					| 
						
							
								
							
						
						
						
					 | 
					
  | 
				
			
			
		
	
								
							
						
					 
					
				 
			 
		
			
			
			
			
			
			
				
				
					
						
							
								
									
	
		
		
			
				
					| 
						
						
							
								
							
						
						
					 | 
					@ -110,6 +110,12 @@ VOLUME /data | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					EXPOSE 80 | 
					 | 
					 | 
					EXPOSE 80 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					EXPOSE 3012 | 
					 | 
					 | 
					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) | 
					 | 
					 | 
					# Copies the files from the context (Rocket.toml file and web-vault) | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					# and the binary from the "build" stage to the current stage | 
					 | 
					 | 
					# and the binary from the "build" stage to the current stage | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					WORKDIR / | 
					 | 
					 | 
					WORKDIR / | 
				
			
			
		
	
	
		
		
			
				
					| 
						
							
								
							
						
						
						
					 | 
					
  | 
				
			
			
		
	
								
							
						
					 
					
				 
			 
		
			
			
			
			
			
			
				
				
					
						
							
								
									
	
		
		
			
				
					| 
						
						
							
								
							
						
						
					 | 
					@ -136,6 +136,12 @@ VOLUME /data | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					EXPOSE 80 | 
					 | 
					 | 
					EXPOSE 80 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					EXPOSE 3012 | 
					 | 
					 | 
					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) | 
					 | 
					 | 
					# Copies the files from the context (Rocket.toml file and web-vault) | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					# and the binary from the "build" stage to the current stage | 
					 | 
					 | 
					# and the binary from the "build" stage to the current stage | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					WORKDIR / | 
					 | 
					 | 
					WORKDIR / | 
				
			
			
		
	
	
		
		
			
				
					| 
						
							
								
							
						
						
						
					 | 
					
  | 
				
			
			
		
	
								
							
						
					 
					
				 
			 
		
			
			
			
			
			
			
				
				
					
						
							
								
									
	
		
		
			
				
					| 
						
						
							
								
							
						
						
					 | 
					@ -108,6 +108,12 @@ VOLUME /data | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					EXPOSE 80 | 
					 | 
					 | 
					EXPOSE 80 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					EXPOSE 3012 | 
					 | 
					 | 
					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) | 
					 | 
					 | 
					# Copies the files from the context (Rocket.toml file and web-vault) | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					# and the binary from the "build" stage to the current stage | 
					 | 
					 | 
					# and the binary from the "build" stage to the current stage | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					WORKDIR / | 
					 | 
					 | 
					WORKDIR / | 
				
			
			
		
	
	
		
		
			
				
					| 
						
							
								
							
						
						
						
					 | 
					
  | 
				
			
			
		
	
								
							
						
					 
					
				 
			 
		
			
			
			
			
			
			
				
				
					
						
							
								
									
	
		
		
			
				
					| 
						
						
							
								
							
						
						
					 | 
					@ -136,6 +136,12 @@ VOLUME /data | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					EXPOSE 80 | 
					 | 
					 | 
					EXPOSE 80 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					EXPOSE 3012 | 
					 | 
					 | 
					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) | 
					 | 
					 | 
					# Copies the files from the context (Rocket.toml file and web-vault) | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					# and the binary from the "build" stage to the current stage | 
					 | 
					 | 
					# and the binary from the "build" stage to the current stage | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					WORKDIR / | 
					 | 
					 | 
					WORKDIR / | 
				
			
			
		
	
	
		
		
			
				
					| 
						
							
								
							
						
						
						
					 | 
					
  | 
				
			
			
		
	
								
							
						
					 
					
				 
			 
		
			
			
			
			
			
			
				
				
					
						
							
								
									
	
		
		
			
				
					| 
						
						
							
								
							
						
						
					 | 
					@ -108,6 +108,12 @@ VOLUME /data | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					EXPOSE 80 | 
					 | 
					 | 
					EXPOSE 80 | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					EXPOSE 3012 | 
					 | 
					 | 
					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) | 
					 | 
					 | 
					# Copies the files from the context (Rocket.toml file and web-vault) | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					# and the binary from the "build" stage to the current stage | 
					 | 
					 | 
					# and the binary from the "build" stage to the current stage | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					WORKDIR / | 
					 | 
					 | 
					WORKDIR / | 
				
			
			
		
	
	
		
		
			
				
					| 
						
							
								
							
						
						
						
					 | 
					
  | 
				
			
			
		
	
								
							
						
					 
					
				 
			 
		
			
			
			
			
			
			
				
				
					
						
							
								
									
	
		
		
			
				
					| 
						
						
							
								
							
						
						
					 | 
					@ -276,6 +276,20 @@ fn check_data_folder() { | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					        } | 
					 | 
					 | 
					        } | 
				
			
			
		
	
		
		
			
				
					 | 
					 | 
					        exit(1); | 
					 | 
					 | 
					        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> { | 
					 | 
					 | 
					fn check_rsa_keys() -> Result<(), crate::error::Error> { | 
				
			
			
		
	
	
		
		
			
				
					| 
						
							
								
							
						
						
						
					 | 
					
  |