32 lines
798 B
Bash
Executable File
32 lines
798 B
Bash
Executable File
#!/usr/bin/env bash
|
|
|
|
set -e
|
|
|
|
IMAGE_NAME="wechat-admin-backend"
|
|
CONTAINER_NAME="wechat-admin-backend"
|
|
PORT="${PORT:-3000}"
|
|
|
|
echo "Building Docker image: ${IMAGE_NAME}..."
|
|
docker build -t "${IMAGE_NAME}" .
|
|
|
|
echo "Stopping and removing existing container (if any)..."
|
|
if [ "$(docker ps -aq -f name=${CONTAINER_NAME})" ]; then
|
|
docker rm -f "${CONTAINER_NAME}" >/dev/null 2>&1 || true
|
|
fi
|
|
|
|
ENV_FILE=".env"
|
|
if [ ! -f "${ENV_FILE}" ]; then
|
|
echo "Env file ${ENV_FILE} not found, copying from .env.example ..."
|
|
cp .env.example "${ENV_FILE}"
|
|
fi
|
|
|
|
echo "Running container ${CONTAINER_NAME} on port ${PORT}..."
|
|
docker run -d \
|
|
--name "${CONTAINER_NAME}" \
|
|
--env-file "${ENV_FILE}" \
|
|
-p "${PORT}:3000" \
|
|
"${IMAGE_NAME}"
|
|
|
|
echo "Container started. Health check: curl http://localhost:${PORT}/health"
|
|
|