Add docker_containers_oci
This commit is contained in:
parent
52dd9cf0e6
commit
186709b990
123
docker_containers_oci
Normal file
123
docker_containers_oci
Normal file
@ -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 <<EOF > "$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
|
||||
Loading…
x
Reference in New Issue
Block a user