fix(celld-deploy): configure celld runtime via environment variables and copy wrangler config for d1 migrations
This commit is contained in:
+20
-12
@@ -134,6 +134,7 @@ trap 'rm -rf "$STAGING_DIR" ~/.ssh/truenas_deploy_key' EXIT
|
||||
{
|
||||
echo "AWS_ACCESS_KEY_ID=${INPUT_S3_ACCESS_KEY}"
|
||||
echo "AWS_SECRET_ACCESS_KEY=${INPUT_S3_SECRET_KEY}"
|
||||
echo "AWS_REGION=${S3_REGION}"
|
||||
if [ -n "${INPUT_ENV_CONTENT:-}" ]; then
|
||||
printf "%s\n" "$INPUT_ENV_CONTENT"
|
||||
fi
|
||||
@@ -153,6 +154,12 @@ services:
|
||||
env_file:
|
||||
- .env
|
||||
environment:
|
||||
- CELLD_BUCKET=s3://${BUCKET}
|
||||
- S3_ENDPOINT=${INTERNAL_S3_ENDPOINT}
|
||||
- CELLD_ADDR=0.0.0.0:8080
|
||||
- CELLD_INTERNAL_ADDR=127.0.0.1:8081
|
||||
- CELLD_ADVERTISE=127.0.0.1:8081
|
||||
- CELLD_TRUST_FORWARDED_HEADERS=1
|
||||
- CELLD_NODE=${CLEAN_APP}-truenas-1
|
||||
- CELLD_WATCH=/var/lib/celld/state
|
||||
- CELLD_IDLE_EVICT_S=${IDLE_EVICT_S}
|
||||
@@ -160,13 +167,6 @@ services:
|
||||
- CELLD_DEPLOY_POLL_S=${DEPLOY_POLL_S}
|
||||
volumes:
|
||||
- ./data:/var/lib/celld
|
||||
command:
|
||||
- --bucket=s3://${BUCKET}
|
||||
- --endpoint=${INTERNAL_S3_ENDPOINT}
|
||||
- --region=${S3_REGION}
|
||||
- --listen=0.0.0.0:8080
|
||||
- --internal-listen=127.0.0.1:8081
|
||||
- --advertise=127.0.0.1:8081
|
||||
networks:
|
||||
- ${NETWORK}
|
||||
labels:
|
||||
@@ -204,18 +204,26 @@ if [ "$REMOTE_STATE" != "${LOCAL_ENV_HASH}:${LOCAL_COMPOSE_HASH}:true" ]; then
|
||||
scp -i ~/.ssh/truenas_deploy_key -o StrictHostKeyChecking=no "${STAGING_DIR}/.env" "${USER}@${HOST}:${REMOTE_DIR}/.env"
|
||||
scp -i ~/.ssh/truenas_deploy_key -o StrictHostKeyChecking=no "${STAGING_DIR}/docker-compose.yml" "${USER}@${HOST}:${REMOTE_DIR}/docker-compose.yml"
|
||||
ssh -i ~/.ssh/truenas_deploy_key -o StrictHostKeyChecking=no "${USER}@${HOST}" "chmod 600 ${REMOTE_DIR}/.env && cd ${REMOTE_DIR} && docker compose up -d --remove-orphans"
|
||||
sleep 3
|
||||
sleep 4
|
||||
else
|
||||
echo "⚡ TrueNAS container ${CLEAN_APP}-celld is already running with matching config; hot-reloading bundle in place!"
|
||||
echo "⚡ TrueNAS container ${CLEAN_APP}-celld is already running; triggering immediate in-place reload..."
|
||||
ssh -i ~/.ssh/truenas_deploy_key -o StrictHostKeyChecking=no "${USER}@${HOST}" "
|
||||
docker exec ${CLEAN_APP}-celld bash -c 'exec 3<>/dev/tcp/127.0.0.1/8081 && printf \"POST /reload HTTP/1.1\r\nHost: 127.0.0.1:8081\r\nContent-Length: 0\r\nConnection: close\r\n\r\n\" >&3 && head -n 1 <&3' 2>/dev/null || true
|
||||
"
|
||||
fi
|
||||
|
||||
# 8. Optional D1 SQLite migrations
|
||||
if [ -n "${INPUT_D1_DATABASE:-}" ] && [ -d "migrations" ]; then
|
||||
echo "🗄️ Applying D1 migrations for database '${INPUT_D1_DATABASE}'..."
|
||||
ssh -i ~/.ssh/truenas_deploy_key -o StrictHostKeyChecking=no "${USER}@${HOST}" "rm -rf ${REMOTE_DIR}/data/migrations && mkdir -p ${REMOTE_DIR}/data/migrations"
|
||||
scp -r -i ~/.ssh/truenas_deploy_key -o StrictHostKeyChecking=no migrations/. "${USER}@${HOST}:${REMOTE_DIR}/data/migrations/"
|
||||
ssh -i ~/.ssh/truenas_deploy_key -o StrictHostKeyChecking=no "${USER}@${HOST}" "rm -rf ${REMOTE_DIR}/data/project && mkdir -p ${REMOTE_DIR}/data/project/migrations"
|
||||
for f in wrangler.json wrangler.jsonc wrangler.toml; do
|
||||
if [ -f "$f" ]; then
|
||||
scp -i ~/.ssh/truenas_deploy_key -o StrictHostKeyChecking=no "$f" "${USER}@${HOST}:${REMOTE_DIR}/data/project/$f"
|
||||
fi
|
||||
done
|
||||
scp -r -i ~/.ssh/truenas_deploy_key -o StrictHostKeyChecking=no migrations/. "${USER}@${HOST}:${REMOTE_DIR}/data/project/migrations/"
|
||||
ssh -i ~/.ssh/truenas_deploy_key -o StrictHostKeyChecking=no "${USER}@${HOST}" "
|
||||
docker exec -w /var/lib/celld ${CLEAN_APP}-celld celld d1 migrations apply '${INPUT_D1_DATABASE}' \
|
||||
docker exec -w /var/lib/celld/project ${CLEAN_APP}-celld celld d1 migrations apply '${INPUT_D1_DATABASE}' . \
|
||||
--bucket 's3://${BUCKET}' \
|
||||
--endpoint '${INTERNAL_S3_ENDPOINT}' \
|
||||
--region '${S3_REGION}'
|
||||
|
||||
Reference in New Issue
Block a user