diff --git a/backend/src/init.rs b/backend/src/init.rs index a8d71fef8..03a7694bb 100644 --- a/backend/src/init.rs +++ b/backend/src/init.rs @@ -27,8 +27,9 @@ pub async fn init(cfg: &RpcContextConfig, product_key: &str) -> Result<(), Error tokio::fs::create_dir_all(&tmp_dir).await?; } let tmp_docker = cfg.datadir().join("package-data/tmp/docker"); - if should_rebuild { - if tokio::fs::metadata(&tmp_docker).await.is_ok() { + let tmp_docker_exists = tokio::fs::metadata(&tmp_docker).await.is_ok(); + if should_rebuild || !tmp_docker_exists { + if tmp_docker_exists { tokio::fs::remove_dir_all(&tmp_docker).await?; } Command::new("cp") @@ -60,11 +61,10 @@ pub async fn init(cfg: &RpcContextConfig, product_key: &str) -> Result<(), Error tracing::info!("Loading System Docker Images"); crate::install::load_images("/var/lib/embassy/system-images").await?; tracing::info!("Loaded System Docker Images"); - + tracing::info!("Loading Package Docker Images"); crate::install::load_images(cfg.datadir().join(PKG_DOCKER_DIR)).await?; tracing::info!("Loaded Package Docker Images"); - } crate::ssh::sync_keys_from_db(&secret_store, "/root/.ssh/authorized_keys").await?; diff --git a/build/write-image.sh b/build/write-image.sh index e76f41c03..38a3e4fb3 100755 --- a/build/write-image.sh +++ b/build/write-image.sh @@ -39,7 +39,6 @@ sudo mv /tmp/eos-mnt/config.txt.tmp /tmp/eos-mnt/config.txt # Unmount the boot partition and mount embassy partition sudo umount /tmp/eos-mnt sudo mount ${OUTPUT_DEVICE}p2 /tmp/eos-mnt -sudo touch /tmp/eos-mnt/system-rebuild # rebuild docker state on first startup if [ "$NO_KEY" != "1" ]; then sudo cp product_key.txt /tmp/eos-mnt; else echo "This image is being written with no product key"; fi sudo umount /tmp/eos-mnt