Saving files
This commit is contained in:
+38
-8
@@ -58,10 +58,11 @@ services:
|
|||||||
# - auth_db
|
# - auth_db
|
||||||
# networks:
|
# networks:
|
||||||
# - soaricarus-network
|
# - soaricarus-network
|
||||||
|
|
||||||
# --- storage service ---
|
# --- storage service ---
|
||||||
maze:
|
maze:
|
||||||
build:
|
build:
|
||||||
context: ./garage
|
context: ./garage/storage
|
||||||
dockerfile: Dockerfile
|
dockerfile: Dockerfile
|
||||||
container_name: maze
|
container_name: maze
|
||||||
restart: unless-stopped
|
restart: unless-stopped
|
||||||
@@ -72,7 +73,8 @@ services:
|
|||||||
- "3903:3903" # Admin API
|
- "3903:3903" # Admin API
|
||||||
volumes:
|
volumes:
|
||||||
- ./garage.toml:/etc/garage.toml:ro
|
- ./garage.toml:/etc/garage.toml:ro
|
||||||
- ./garage/entrypoint.sh:/entrypoint.sh:ro
|
# - ./garage/entrypoint.sh:/entrypoint.sh:ro
|
||||||
|
- ./garage/storage/run.sh:/run.sh:ro
|
||||||
- shared_credentials:/shared
|
- shared_credentials:/shared
|
||||||
- object_data:/var/lib/garage
|
- object_data:/var/lib/garage
|
||||||
# - ./scripts:/scripts:ro # ← ADD THIS - mount the scripts directory
|
# - ./scripts:/scripts:ro # ← ADD THIS - mount the scripts directory
|
||||||
@@ -85,18 +87,46 @@ services:
|
|||||||
- BUCKET_NAME=${S3_BUCKET_NAME}
|
- BUCKET_NAME=${S3_BUCKET_NAME}
|
||||||
# entrypoint: ["/entrypoint.sh"]
|
# entrypoint: ["/entrypoint.sh"]
|
||||||
# command: []
|
# command: []
|
||||||
healthcheck:
|
# healthcheck:
|
||||||
test: ["CMD-SHELL", "curl -f http://localhost:3901/v0/status || exit 1"]
|
# test: ["CMD-SHELL", "curl -f http://localhost:3901/v0/status || exit 1"]
|
||||||
# test: ["CMD-SHELL", "echo 'What is to be done?'"]
|
# test: ["CMD-SHELL", "echo 'What is to be done?'"]
|
||||||
# test: ["CMD-SHELL", "nc -z localhost 3900 || exit 1"]
|
# test: ["CMD-SHELL", "nc -z localhost 3900 || exit 1"]
|
||||||
# test: ["CMD-SHELL", "/garage status | grep -q 'Health: ok' || exit 1"]
|
# test: ["CMD-SHELL", "/garage status | grep -q 'Health: ok' || exit 1"]
|
||||||
interval: 10s
|
# interval: 10s
|
||||||
timeout: 5s
|
# timeout: 5s
|
||||||
retries: 5
|
# retries: 5
|
||||||
start_period: 30s
|
# start_period: 30s
|
||||||
networks:
|
networks:
|
||||||
- soaricarus-network
|
- soaricarus-network
|
||||||
|
|
||||||
|
maze-init:
|
||||||
|
# image: dxflrs/garage:v2.3.0
|
||||||
|
# image: docker:dind
|
||||||
|
build:
|
||||||
|
context: ./garage/init
|
||||||
|
dockerfile: Dockerfile
|
||||||
|
container_name: maze-init
|
||||||
|
depends_on:
|
||||||
|
maze:
|
||||||
|
condition: service_started
|
||||||
|
volumes:
|
||||||
|
- /var/run/docker.sock:/var/run/docker.sock # Mount Docker socket
|
||||||
|
- shared_credentials:/shared
|
||||||
|
- object_data:/var/lib/garage
|
||||||
|
- ./garage/init/entrypoint.sh:/entrypoint.sh:ro
|
||||||
|
# - ./scripts:/scripts:ro # ← ADD THIS - mount the scripts directory
|
||||||
|
environment:
|
||||||
|
- AWS_ACCESS_KEY_ID=${AWS_ACCESS_KEY_ID}
|
||||||
|
- AWS_SECRET_ACCESS_KEY=${AWS_SECRET_ACCESS_KEY}
|
||||||
|
- GARAGE_RPC_SECRET=${GARAGE_RPC_SECRET}
|
||||||
|
- BUCKET_NAME=${S3_BUCKET_NAME}
|
||||||
|
env_file:
|
||||||
|
- .env
|
||||||
|
# entrypoint: ["/bin/sh"]
|
||||||
|
# command: ["/scripts/init-garage.sh"]
|
||||||
|
restart: "no" # Run once and exit
|
||||||
|
networks:
|
||||||
|
- soaricarus-network
|
||||||
|
|
||||||
# PostgreSQL Database Service
|
# PostgreSQL Database Service
|
||||||
main_db:
|
main_db:
|
||||||
|
|||||||
@@ -4,7 +4,6 @@ db_engine = "sqlite"
|
|||||||
replication_factor = 1
|
replication_factor = 1
|
||||||
|
|
||||||
rpc_bind_addr = "[::]:3901"
|
rpc_bind_addr = "[::]:3901"
|
||||||
rpc_secret = "${GARAGE_RPC_SECRET}"
|
|
||||||
|
|
||||||
[s3_api]
|
[s3_api]
|
||||||
s3_region = "maze"
|
s3_region = "maze"
|
||||||
|
|||||||
@@ -0,0 +1,19 @@
|
|||||||
|
# Use a base image with a shell (Alpine)
|
||||||
|
FROM alpine:latest
|
||||||
|
|
||||||
|
# Install necessary tools
|
||||||
|
RUN apk add --no-cache curl
|
||||||
|
|
||||||
|
# Copy the Garage binary from the official image
|
||||||
|
COPY --from=dxflrs/garage:v2.3.0 /garage /usr/local/bin/garage
|
||||||
|
|
||||||
|
# Copy the entrypoint script
|
||||||
|
COPY entrypoint.sh /entrypoint.sh
|
||||||
|
RUN chmod +x /entrypoint.sh
|
||||||
|
|
||||||
|
# Set the entrypoint
|
||||||
|
ENTRYPOINT ["/entrypoint.sh"]
|
||||||
|
|
||||||
|
# Pass through any arguments to Garage
|
||||||
|
CMD []
|
||||||
|
|
||||||
Executable
@@ -0,0 +1,19 @@
|
|||||||
|
# Use a base image with a shell (Alpine)
|
||||||
|
FROM alpine:latest
|
||||||
|
|
||||||
|
# Install necessary tools
|
||||||
|
RUN apk add --no-cache curl
|
||||||
|
|
||||||
|
# Copy the Garage binary from the official image
|
||||||
|
COPY --from=dxflrs/garage:v2.3.0 /garage /usr/local/bin/garage
|
||||||
|
|
||||||
|
# Copy the entrypoint script
|
||||||
|
COPY run.sh /run.sh
|
||||||
|
RUN chmod +x /run.sh
|
||||||
|
|
||||||
|
# Set the run
|
||||||
|
ENTRYPOINT ["/run.sh"]
|
||||||
|
|
||||||
|
# Pass through any arguments to Garage
|
||||||
|
CMD []
|
||||||
|
|
||||||
Executable
+41
@@ -0,0 +1,41 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
set -e
|
||||||
|
|
||||||
|
BUCKET_NAME="${BUCKET_NAME:-soaricarus-storage}"
|
||||||
|
CREDENTIALS_FILE="/shared/garage-credentials.env"
|
||||||
|
SETUP_DONE="/shared/setup.done"
|
||||||
|
GARAGE_BIN="/usr/local/bin/garage"
|
||||||
|
|
||||||
|
# Function to write credentials
|
||||||
|
write_credentials() {
|
||||||
|
local access_key="$1"
|
||||||
|
local secret_key="$2"
|
||||||
|
mkdir -p "$(dirname "$CREDENTIALS_FILE")"
|
||||||
|
cat > "$CREDENTIALS_FILE" << EOF
|
||||||
|
GARAGE_ACCESS_KEY_ID=$access_key
|
||||||
|
GARAGE_SECRET_ACCESS_KEY=$secret_key
|
||||||
|
GARAGE_BUCKET_NAME=$BUCKET_NAME
|
||||||
|
GARAGE_ENDPOINT=http://localhost:3900
|
||||||
|
EOF
|
||||||
|
touch "$SETUP_DONE"
|
||||||
|
echo "✅ Credentials saved to $CREDENTIALS_FILE"
|
||||||
|
}
|
||||||
|
|
||||||
|
sleep 5
|
||||||
|
|
||||||
|
echo "Starting garage"
|
||||||
|
GARAGE_COMMAND_EXEC="$GARAGE_BIN -c /etc/garage.toml server"
|
||||||
|
|
||||||
|
echo "Running"
|
||||||
|
|
||||||
|
|
||||||
|
# Start Garage in background for setup (just the binary, no daemon subcommand)
|
||||||
|
echo "⏳ Starting Garage in background..."
|
||||||
|
echo "GARAGE_COMMAND_EXEC: $GARAGE_COMMAND_EXEC"
|
||||||
|
# $GARAGE_BIN "$@" &
|
||||||
|
# GARAGE_PID=$!
|
||||||
|
# $GARAGE_BIN -c /etc/garage.toml & GARAGE_PID=$!
|
||||||
|
$GARAGE_COMMAND_EXEC & GARAGE_PID=$!
|
||||||
|
|
||||||
|
sleep 10
|
||||||
|
echo "GARAGE_PID: $GARAGE_PID"
|
||||||
Reference in New Issue
Block a user