@ -82,10 +82,7 @@ RUN apt-get update && \ 
			
		
	
		
		
			
				
					        "libc6-$(xx-info debian-arch)-cross" \        "libc6-$(xx-info debian-arch)-cross" \ 
			
		
	
		
		
			
				
					        "libc6-dev-$(xx-info debian-arch)-cross" \        "libc6-dev-$(xx-info debian-arch)-cross" \ 
			
		
	
		
		
			
				
					        "linux-libc-dev-$(xx-info debian-arch)-cross" && \        "linux-libc-dev-$(xx-info debian-arch)-cross" && \ 
			
		
	
		
		
			
				
					
					    # Run xx-cargo early, since it sometimes seems to break when run at a later stage    xx-apt-get install -y \ 
			
				
				
			
		
	
		
		
			
				
					    echo "export CARGO_TARGET=$(xx-cargo --print-target-triple)" >> /env-cargo 
			
		
	
		
		
			
				
					
 
			
		
	
		
		
			
				
					RUN xx-apt-get install -y \ 
			
		
	
		
		
	
		
		
			
				
					        --no-install-recommends \        --no-install-recommends \ 
			
		
	
		
		
			
				
					        gcc \        gcc \ 
			
		
	
		
		
			
				
					        libmariadb3 \        libmariadb3 \ 
			
		
	
	
		
		
			
				
					
						
						
						
							
								 
						
					 
					@ -96,12 +93,14 @@ RUN xx-apt-get install -y \ 
			
		
	
		
		
			
				
					    # Force install arch dependend mariadb dev packages    # Force install arch dependend mariadb dev packages 
			
		
	
		
		
			
				
					    # Installing them the normal way breaks several other packages (again)    # Installing them the normal way breaks several other packages (again) 
			
		
	
		
		
			
				
					    apt-get download "libmariadb-dev-compat:$(xx-info debian-arch)" "libmariadb-dev:$(xx-info debian-arch)" && \    apt-get download "libmariadb-dev-compat:$(xx-info debian-arch)" "libmariadb-dev:$(xx-info debian-arch)" && \ 
			
		
	
		
		
			
				
					
					    dpkg --force-all -i ./libmariadb-dev*.deb    dpkg --force-all -i ./libmariadb-dev*.deb && \ 
			
				
				
			
		
	
		
		
	
		
		
			
				
					    # Run xx-cargo early, since it sometimes seems to break when run at a later stage 
			
		
	
		
		
			
				
					    echo "export CARGO_TARGET=$(xx-cargo --print-target-triple)" >> /env-cargo 
			
		
	
		
		
			
				
					{% endif %}{% endif %} 
			
		
	
		
		
			
				
					
 
			
		
	
		
		
			
				
					# Create CARGO_HOME folder and don't download rust docs# Create CARGO_HOME folder and don't download rust docs 
			
		
	
		
		
			
				
					
					RUN mkdir -pv "${CARGO_HOME}" \RUN mkdir -pv "${CARGO_HOME}" &&  \ 
			
				
				
			
		
	
		
		
			
				
					
					    &&  rustup set profile minimal    rustup set profile minimal 
			
				
				
			
		
	
		
		
	
		
		
	
		
		
			
				
					
 
			
		
	
		
		
			
				
					# Creates a dummy project used to grab dependencies# Creates a dummy project used to grab dependencies 
			
		
	
		
		
			
				
					RUN USER=root cargo new --bin /appRUN USER=root cargo new --bin /app 
			
		
	
	
		
		
			
				
					
						
							
								 
						
						
							
								 
						
						
					 
					@ -131,8 +130,6 @@ RUN source /env-cargo && \ 
			
		
	
		
		
			
				
					    # Output the current contents of the file    # Output the current contents of the file 
			
		
	
		
		
			
				
					    cat /env-cargo    cat /env-cargo 
			
		
	
		
		
			
				
					
 
			
		
	
		
		
			
				
					# Configure the DB ARG as late as possible to not invalidate the cached layers above 
			
		
	
		
		
			
				
					ARG DB=sqlite,mysql,postgresql 
			
		
	
		
		
			
				
					{% elif base == "alpine" %}{% elif base == "alpine" %} 
			
		
	
		
		
			
				
					# Environment variables for Cargo on Alpine based builds# Environment variables for Cargo on Alpine based builds 
			
		
	
		
		
			
				
					RUN echo "export CARGO_TARGET=${RUST_MUSL_CROSS_TARGET}" >> /env-cargo && \RUN echo "export CARGO_TARGET=${RUST_MUSL_CROSS_TARGET}" >> /env-cargo && \ 
			
		
	
	
		
		
			
				
					
						
						
						
							
								 
						
					 
					@ -141,21 +138,22 @@ RUN echo "export CARGO_TARGET=${RUST_MUSL_CROSS_TARGET}" >> /env-cargo && \ 
			
		
	
		
		
			
				
					    # Output the current contents of the file    # Output the current contents of the file 
			
		
	
		
		
			
				
					    cat /env-cargo    cat /env-cargo 
			
		
	
		
		
			
				
					
 
			
		
	
		
		
			
				
					# Configure the DB ARG as late as possible to not invalidate the cached layers above 
			
		
	
		
		
			
				
					# Enable MiMalloc to improve performance on Alpine builds 
			
		
	
		
		
			
				
					ARG DB=sqlite,mysql,postgresql,enable_mimalloc 
			
		
	
		
		
			
				
					{% endif %}{% endif %} 
			
		
	
		
		
			
				
					
 
			
		
	
		
		
			
				
					RUN source /env-cargo && \RUN source /env-cargo && \ 
			
		
	
		
		
			
				
					    rustup target add "${CARGO_TARGET}"    rustup target add "${CARGO_TARGET}" 
			
		
	
		
		
			
				
					
 
			
		
	
		
		
			
				
					# Copies over *only* your manifests and build files 
			
		
	
		
		
			
				
					COPY ./Cargo.* ./rust-toolchain.toml ./build.rs ./ 
			
		
	
		
		
			
				
					
 
			
		
	
		
		
			
				
					ARG CARGO_PROFILE=releaseARG CARGO_PROFILE=release 
			
		
	
		
		
			
				
					ARG VW_VERSION 
			
		
	
		
		
			
				
					
 
			
		
	
		
		
			
				
					
					# Copies over *only* your manifests and build files# Configure the DB ARG as late as possible to not invalidate the cached layers above 
			
				
				
			
		
	
		
		
			
				
					
					COPY ./Cargo.* ./{% if base == "debian" %} 
			
				
				
			
		
	
		
		
			
				
					
					COPY ./rust-toolchain.toml ./rust-toolchain.tomlARG DB=sqlite,mysql,postgresql 
			
				
				
			
		
	
		
		
			
				
					
					COPY ./build.rs ./build.rs{% elif base == "alpine" %} 
			
				
				
			
		
	
		
		
	
		
		
	
		
		
	
		
		
	
		
		
			
				
					# Enable MiMalloc to improve performance on Alpine builds 
			
		
	
		
		
			
				
					ARG DB=sqlite,mysql,postgresql,enable_mimalloc 
			
		
	
		
		
			
				
					{% endif %} 
			
		
	
		
		
			
				
					
 
			
		
	
		
		
			
				
					# Builds your dependencies and removes the# Builds your dependencies and removes the 
			
		
	
		
		
			
				
					# dummy project, except the target folder# dummy project, except the target folder 
			
		
	
	
		
		
			
				
					
						
						
						
							
								 
						
					 
					@ -168,6 +166,8 @@ RUN source /env-cargo && \ 
			
		
	
		
		
			
				
					# To avoid copying unneeded files, use .dockerignore# To avoid copying unneeded files, use .dockerignore 
			
		
	
		
		
			
				
					COPY . .COPY . . 
			
		
	
		
		
			
				
					
 
			
		
	
		
		
			
				
					ARG VW_VERSION 
			
		
	
		
		
			
				
					
 
			
		
	
		
		
			
				
					# Builds again, this time it will be the actual source files being build# Builds again, this time it will be the actual source files being build 
			
		
	
		
		
			
				
					RUN source /env-cargo && \RUN source /env-cargo && \ 
			
		
	
		
		
			
				
					    # Make sure that we actually build the project by updating the src/main.rs timestamp    # Make sure that we actually build the project by updating the src/main.rs timestamp 
			
		
	
	
		
		
			
				
					
						
							
								 
						
						
							
								 
						
						
					 
					@ -237,8 +237,7 @@ EXPOSE 3012 
			
		
	
		
		
			
				
					# and the binary from the "build" stage to the current stage# and the binary from the "build" stage to the current stage 
			
		
	
		
		
			
				
					WORKDIR /WORKDIR / 
			
		
	
		
		
			
				
					
 
			
		
	
		
		
			
				
					
					COPY docker/healthcheck.sh /healthcheck.shCOPY docker/healthcheck.sh docker/start.sh / 
			
				
				
			
		
	
		
		
			
				
					COPY docker/start.sh /start.sh 
			
		
	
		
		
	
		
		
			
				
					
 
			
		
	
		
		
			
				
					COPY --from=vault /web-vault ./web-vaultCOPY --from=vault /web-vault ./web-vault 
			
		
	
		
		
			
				
					COPY --from=build /app/target/final/vaultwarden .COPY --from=build /app/target/final/vaultwarden .