diff options
author | axtloss <axtlos@getcryst.al> | 2023-05-25 23:16:38 +0200 |
---|---|---|
committer | axtloss <axtlos@getcryst.al> | 2023-05-25 23:16:38 +0200 |
commit | 3fdb1012609b71a41e551ea0aad3b8a27b134e21 (patch) | |
tree | 93956331d1e3ca1ceb493fd0a0d8c1bcebdb6994 /src/main/java/io/github/jshipit/ContainerManager.java | |
parent | cd0df48723ca7c603cececc3c65003bf43b09d59 (diff) | |
download | jshipit-3fdb1012609b71a41e551ea0aad3b8a27b134e21.tar.gz jshipit-3fdb1012609b71a41e551ea0aad3b8a27b134e21.tar.bz2 |
remove command, allow registry/repo/image:tag layout
Diffstat (limited to 'src/main/java/io/github/jshipit/ContainerManager.java')
-rw-r--r-- | src/main/java/io/github/jshipit/ContainerManager.java | 21 |
1 files changed, 17 insertions, 4 deletions
diff --git a/src/main/java/io/github/jshipit/ContainerManager.java b/src/main/java/io/github/jshipit/ContainerManager.java index c1d9b38..92482df 100644 --- a/src/main/java/io/github/jshipit/ContainerManager.java +++ b/src/main/java/io/github/jshipit/ContainerManager.java @@ -9,7 +9,6 @@ import java.nio.file.Files; import java.nio.file.Paths; import java.util.ArrayList; import java.util.List; -import java.util.UUID; public class ContainerManager { private String containerName; @@ -43,6 +42,11 @@ public class ContainerManager { public void createContainer() { System.out.println("Creating container"); + if (dataStore.containerExists(this.containerName)) { + System.out.println("Container already exists"); + return; + } + if (!Files.isDirectory(Paths.get(dataStore.getPath() + "/" + this.containerImage + "/" + this.containerTag))) { System.out.println("Image does not exist"); return; @@ -114,7 +118,7 @@ public class ContainerManager { bwrapCommand.add("--setenv "+envVar.split("=")[0]+" "+envVar.split("=")[1]); } - bwrapCommand.add("--ro-bind "+containerDirectory+"/root / --chdir /"); + bwrapCommand.add("--bind "+containerDirectory+"/root / --chdir /"); bwrapCommand.add("--share-net"); bwrapCommand.add("--unshare-uts --hostname "+ (!hostname.isBlank() ? hostname : this.containerName+"-"+this.containerImage)); bwrapCommand.add("/bin/sh -c '"+(this.containerCommand != null ? this.containerCommand : cmd)+"'"); @@ -133,7 +137,16 @@ public class ContainerManager { } } - public String genContainerID() { - return UUID.randomUUID().toString(); + public void deleteContainer() { + String containerDirectory = dataStore.getContainerPath(this.containerName); + try { + Files.delete(Paths.get(containerDirectory + "/containerOverlay")); + Files.delete(Paths.get(containerDirectory + "/root")); + Files.delete(Paths.get(containerDirectory + "/work")); + Files.delete(Paths.get(containerDirectory)); + } catch (IOException e) { + throw new RuntimeException(e); + } + dataStore.deleteContainerFromDatabase(this.containerName); } }
\ No newline at end of file |