aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/io/github/jshipit/ContainerManager.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/io/github/jshipit/ContainerManager.java')
-rw-r--r--src/main/java/io/github/jshipit/ContainerManager.java21
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