27 lines
957 B
Bash
27 lines
957 B
Bash
#!/bin/bash
|
|
set -euo pipefail
|
|
|
|
CONTAINER_NAME="${CONTAINER_NAME:-iotlcm-worker-svr}"
|
|
IMAGE="${IMAGE:-your-registry/iotlcm/iotlcm-worker-svr:latest}"
|
|
LOG_DIR="${LOG_DIR:-/data/app/iotlcm-worker-svr/logs}"
|
|
FULL_SYNC_ARCHIVE_DIR="${FULL_SYNC_ARCHIVE_DIR:-/data/logs/iotlcm-worker-svr/full-sync}"
|
|
|
|
# Must match the Admin service upload mount, otherwise Worker cannot read
|
|
# Admin-created local OSS files such as async inbound Excel sources.
|
|
UPLOAD_DIR="${UPLOAD_DIR:-/data/app/iotlcmadmin-web-svc/upload}"
|
|
|
|
mkdir -p "${LOG_DIR}" "${FULL_SYNC_ARCHIVE_DIR}" "${UPLOAD_DIR}"
|
|
|
|
if docker ps -a --format '{{.Names}}' | grep -qx "${CONTAINER_NAME}"; then
|
|
docker stop "${CONTAINER_NAME}" >/dev/null 2>&1 || true
|
|
docker rm "${CONTAINER_NAME}" >/dev/null
|
|
fi
|
|
|
|
docker run -d \
|
|
--name "${CONTAINER_NAME}" \
|
|
--restart unless-stopped \
|
|
-v "${LOG_DIR}:/app/logs" \
|
|
-v "${FULL_SYNC_ARCHIVE_DIR}:/app/logs/full-sync" \
|
|
-v "${UPLOAD_DIR}:/app/upload" \
|
|
"${IMAGE}"
|