aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/io/github/jshipit/ContainerManager.java
diff options
context:
space:
mode:
authoraxtloss <axtlos@getcryst.al>2023-05-24 19:23:30 +0200
committeraxtloss <axtlos@getcryst.al>2023-05-24 19:23:30 +0200
commit63146274f8cbe759742aa18413054515c0f81583 (patch)
treec6cddc91db04b04f31f8ab3c76406f9c53c0587c /src/main/java/io/github/jshipit/ContainerManager.java
parent732147566e83c1e160154b18c33618a36fac30e0 (diff)
downloadjshipit-63146274f8cbe759742aa18413054515c0f81583.tar.gz
jshipit-63146274f8cbe759742aa18413054515c0f81583.tar.bz2
Automatically extract downloaded blobs
Diffstat (limited to 'src/main/java/io/github/jshipit/ContainerManager.java')
-rw-r--r--src/main/java/io/github/jshipit/ContainerManager.java56
1 files changed, 56 insertions, 0 deletions
diff --git a/src/main/java/io/github/jshipit/ContainerManager.java b/src/main/java/io/github/jshipit/ContainerManager.java
new file mode 100644
index 0000000..e8e2dad
--- /dev/null
+++ b/src/main/java/io/github/jshipit/ContainerManager.java
@@ -0,0 +1,56 @@
+package io.github.jshipit;
+
+import java.io.File;
+import java.nio.file.Files;
+import java.nio.file.Path;
+import java.nio.file.Paths;
+import java.util.UUID;
+
+public class ContainerManager {
+ private String containerID;
+ private String containerName;
+ private String containerRepo;
+ private String containerImage;
+ private String containerTag;
+ private String containerApiRepo;
+ private String entryCommand;
+ private OCIDataStore dataStore;
+
+ public ContainerManager(String containerName, String containerImage, String containerTag, String entryCommand, OCIDataStore dataStore) {
+ this.containerName = containerName;
+ this.containerImage = containerImage;
+ this.containerTag = containerTag;
+ this.entryCommand = entryCommand;
+ this.dataStore = dataStore;
+ }
+
+ public void createContainer() {
+ System.out.println("Creating container");
+
+ if (!Files.isDirectory(Paths.get(dataStore.getPath() + this.containerImage + "/" + this.containerTag))) {
+ System.out.println("Image does not exist, pulling now");
+ dataStore.createImage(this.containerApiRepo, this.containerRepo, this.containerImage, this.containerTag);
+ }
+
+ if (this.containerID == null) {
+ this.containerID = genContainerID();
+ }
+
+ String containerDirectory = dataStore.createContainerDirectory(this.containerImage, this.containerTag, this.containerName, this.containerID);
+
+ System.out.println("Container directory: " + containerDirectory);
+ System.out.println("Container ID: " + this.containerID);
+
+ new File(containerDirectory + "/containerOverlay").mkdirs();
+ new File(containerDirectory + "/root").mkdirs();
+
+
+
+
+ }
+
+ public String genContainerID() {
+ System.out.println("Generating container ID");
+ return UUID.randomUUID().toString();
+ }
+} \ No newline at end of file