c
This commit is contained in:
1 parent
2e9c775599
commit
9a59b2932a
10 files changed
+499
No files matched your search
Executable
+92
@@ -0,0 +1,92 @@
|
||||
#!/bin/bash
|
||||
# Unified Odoo start script for all versions (17 / 18 / 19).
|
||||
# Called by startContainer with IMAGE_TAG exported, e.g.:
|
||||
# IMAGE_TAG=odoo_19 /4server/sbin/start/odoo
|
||||
#
|
||||
# Requires (exported by startContainer before this is called):
|
||||
# CONTAINER_ID, IMAGE_TAG, SOFTWARE, DB_NAME
|
||||
|
||||
_self="$(realpath "${BASH_SOURCE[0]:-$0}")"; SBIN_ROOT="$(dirname "$(dirname "$_self")")" # parent of start/
|
||||
source "$SBIN_ROOT/helpers"
|
||||
source "$SBIN_ROOT/odoo.lib"
|
||||
load_container_config "$CONTAINER_ID"
|
||||
get_contract_info
|
||||
|
||||
BRANCH="${BRANCH:-release}"
|
||||
DB_NAME="${DB_NAME:-$CONTAINER_ID}"
|
||||
ODOO_DB_USER="$DB_NAME"
|
||||
|
||||
log "Starting Odoo container: CONTAINER_ID=$CONTAINER_ID IMAGE_TAG=$IMAGE_TAG DB_NAME=$DB_NAME"
|
||||
|
||||
BASEURL="/4server/data/$CONTAINER_ID"
|
||||
DATA_DIR="$BASEURL/odoo"
|
||||
CUSTOM_DIR="$BASEURL/git/$CONTAINER_ID/custom"
|
||||
ENTERPRISE_DIR="$BASEURL/git/$CONTAINER_ID/enterprise"
|
||||
LOGS_DIR="$BASEURL/logs"
|
||||
CONFIG_DIR="$BASEURL/config"
|
||||
CC_DIR="$BASEURL/cc"
|
||||
BACKUP_DIR="/BACKUP/$CONTAINER_ID"
|
||||
GIT_DIR="$BASEURL/git-server"
|
||||
INSTALL_DIR="$BASEURL/install"
|
||||
SSH_DIR="$BASEURL/.ssh"
|
||||
ETC_DIR="$BASEURL/etc"
|
||||
|
||||
PORT=$((CONTAINERDBID + 2200))
|
||||
log "SSH port: $PORT"
|
||||
|
||||
# --- prepare directories ---
|
||||
find "$BASEURL" -type d -exec chmod 777 {} \;
|
||||
mkdir -p "$ETC_DIR" "$BACKUP_DIR" "$GIT_DIR/keys" "$INSTALL_DIR" "$SSH_DIR"
|
||||
chmod 777 "$ETC_DIR" "$BACKUP_DIR" "$GIT_DIR"
|
||||
touch "$GIT_DIR/keys/id_rsa.pub"
|
||||
echo "git clone \"ssh://git@${CONTAINER_ID}.odoo4projects.com:${PORT}/git-server/repos/odoo.git\"" > "$ETC_DIR/gitpath"
|
||||
|
||||
# --- build Traefik domain rule (exports DOMAIN_LABEL) ---
|
||||
build_traefik_rule
|
||||
|
||||
# --- stop and remove any existing container ---
|
||||
docker stop "$CONTAINER_ID" 2>/dev/null || true
|
||||
docker rm "$CONTAINER_ID" 2>/dev/null || true
|
||||
|
||||
# --- run ---
|
||||
docker run -d --name "$CONTAINER_ID" \
|
||||
--network 4server_4projects \
|
||||
--restart=always \
|
||||
-v "$DATA_DIR/odoo-web-data:/home/odoo/.local/share/Odoo" \
|
||||
-v "$CUSTOM_DIR:/mnt/addons/custom" \
|
||||
-v "$ENTERPRISE_DIR:/mnt/addons/enterprise" \
|
||||
-v "$LOGS_DIR:/mnt/logs" \
|
||||
-v "$CC_DIR:/mnt/cc" \
|
||||
-v "$BACKUP_DIR:/mnt/backup" \
|
||||
-v "$GIT_DIR:/git-server" \
|
||||
-v "$INSTALL_DIR:/mnt/install" \
|
||||
-v "$SSH_DIR:/etc/sshkey" \
|
||||
-v "$ETC_DIR:/mnt/etc" \
|
||||
-p "$PORT:22" \
|
||||
-e HOST="beedb" \
|
||||
-e USER="$ODOO_DB_USER" \
|
||||
-e PASSWORD="$ODOO_DB_PASSWORD" \
|
||||
-e CONTAINER_ID="$CONTAINER_ID" \
|
||||
-e DB_NAME="$DB_NAME" \
|
||||
-e HDD="$HDD" \
|
||||
-e DOMAINS_SLOTS="$DOMAINS_SLOTS" \
|
||||
-e BACKUP_SLOTS="$BACKUP_SLOTS" \
|
||||
-e WORKER="$WORKER" \
|
||||
-e GIT="$GIT" \
|
||||
--label "$DOMAIN_LABEL" \
|
||||
--label "traefik.http.services.$CONTAINER_ID.loadbalancer.server.port=8069" \
|
||||
--label "traefik.http.routers.$CONTAINER_ID.entrypoints=web,websecure" \
|
||||
--label "traefik.http.routers.$CONTAINER_ID.tls=true" \
|
||||
--label "traefik.http.routers.$CONTAINER_ID.tls.certresolver=production" \
|
||||
--label "traefik.http.routers.$CONTAINER_ID.service=$CONTAINER_ID" \
|
||||
"docker.odoo4projects.com/4projects/${IMAGE_TAG}:${BRANCH}" \
|
||||
|| die "docker run failed for $CONTAINER_ID"
|
||||
|
||||
# --- fix ownership inside container ---
|
||||
docker exec "$CONTAINER_ID" chown -R odoo:odoo /home/odoo/.local
|
||||
docker exec "$CONTAINER_ID" chown -R odoo:odoo /mnt
|
||||
docker exec "$CONTAINER_ID" chown -R git:git /git-server
|
||||
chmod 777 "$CC_DIR"
|
||||
|
||||
# --- ensure DB/user exist, restore from default.zip if brand new ---
|
||||
check_and_create_db
|
||||
Reference in new issue
Block a user