From 186709b990b5b4d3e1d6e7a06f8421b9dac24602 Mon Sep 17 00:00:00 2001 From: vijay Date: Sat, 21 Mar 2026 05:03:14 +0000 Subject: [PATCH] Add docker_containers_oci --- docker_containers_oci | 123 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 123 insertions(+) create mode 100644 docker_containers_oci diff --git a/docker_containers_oci b/docker_containers_oci new file mode 100644 index 0000000..2696b0c --- /dev/null +++ b/docker_containers_oci @@ -0,0 +1,123 @@ +#!/bin/bash + +BASE_DIR="/mnt/data" +CONTAINERS_DIR="$BASE_DIR/containers" +VOLUMES_DIR="$BASE_DIR/volumes" + +# Ensure base dirs exist +mkdir -p "$CONTAINERS_DIR" +mkdir -p "$VOLUMES_DIR" + +function create_container() { + echo "Enter container name (e.g. dockhand, grafana):" + read NAME + + if [ -z "$NAME" ]; then + echo "❌ Name cannot be empty" + return + fi + + CONTAINER_PATH="$CONTAINERS_DIR/$NAME" + VOLUME_PATH="$VOLUMES_DIR/$NAME/data" + + if [ -d "$CONTAINER_PATH" ]; then + echo "⚠️ Container already exists!" + return + fi + + echo "🚀 Creating structure..." + + mkdir -p "$CONTAINER_PATH" + mkdir -p "$VOLUME_PATH" + + COMPOSE_FILE="$CONTAINER_PATH/docker-compose.yml" + + cat < "$COMPOSE_FILE" +version: "3.9" + +services: + $NAME: + image: your-image-here + container_name: $NAME + restart: unless-stopped + + ports: + - "PORT:PORT" + + volumes: + - /var/run/docker.sock:/var/run/docker.sock + - $VOLUME_PATH:/app/data + + environment: + - TZ=Australia/Melbourne + + logging: + driver: "json-file" + options: + max-size: "10m" + max-file: "3" + +# networks: +# ${NAME}_net: +# driver: bridge +EOF + + echo "✅ Created:" + echo "📁 $CONTAINER_PATH" + echo "📁 $VOLUME_PATH" + echo "📄 docker-compose.yml" + + echo "" + echo "👉 Opening docker-compose.yml for editing..." + sleep 1 + + nano "$COMPOSE_FILE" +} + +function start_container() { + echo "Enter container name to start:" + read NAME + + CONTAINER_PATH="$CONTAINERS_DIR/$NAME" + + if [ ! -d "$CONTAINER_PATH" ]; then + echo "❌ Container not found!" + return + fi + + cd "$CONTAINER_PATH" || return + docker compose up -d + + echo "✅ Container started" +} + +function list_containers() { + echo "📦 Available containers:" + ls "$CONTAINERS_DIR" +} + +function main_menu() { + while true; do + clear + echo "======================================" + echo " 🚀 Container Management Menu" + echo "======================================" + echo "1. Create New Container" + echo "2. Start Container" + echo "3. List Containers" + echo "4. Exit" + echo "======================================" + echo "Choose an option:" + read OPTION + + case $OPTION in + 1) create_container ;; + 2) start_container ;; + 3) list_containers; read -p "Press enter to continue..." ;; + 4) exit 0 ;; + *) echo "❌ Invalid option"; sleep 1 ;; + esac + done +} + +main_menu \ No newline at end of file