UNPKG

@aivec/wp-docker-dev-factory

Version:

Spin up local WordPress environments with Docker.

113 lines (112 loc) 5.04 kB
"use strict"; var __assign = (this && this.__assign) || function () { __assign = Object.assign || function(t) { for (var s, i = 1, n = arguments.length; i < n; i++) { s = arguments[i]; for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p]; } return t; }; return __assign.apply(this, arguments); }; var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) { if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) { if (ar || !(i in from)) { if (!ar) ar = Array.prototype.slice.call(from, 0, i); ar[i] = from[i]; } } return to.concat(ar || Array.prototype.slice.call(from)); }; Object.defineProperty(exports, "__esModule", { value: true }); var os_1 = require("os"); var constants_1 = require("../constants"); var visibleVcBooleans = ['WP_DEBUG', 'WP_DEBUG_DISPLAY', 'WP_DEBUG_LOG', 'MULTISITE']; var buildEnvVars = function (config) { var envvars = {}; var userenvs = config.env ? config.env : null; if (userenvs) { envvars = __assign(__assign({}, envvars), userenvs); } // user and group to run wordpress container as var user = (0, os_1.userInfo)(); envvars['USER_ID'] = user.uid; envvars['GROUP_ID'] = user.gid; // pass meta paths envvars['AVC_META_DIR'] = constants_1.dockerMetaDirpath; envvars['AVC_SCRIPTS_DIR'] = constants_1.dockerScriptsDirpath; envvars['AVC_DUMPFILES_DIR'] = constants_1.dockerDumpfilesDirpath; envvars['AVC_SSH_DIR'] = constants_1.dockerSshDirpath; envvars['AVC_USER_SCRIPTS_DIR'] = constants_1.dockerUserScriptsDirpath; envvars['AVC_TEMP_DIR'] = constants_1.dockerTempDirpath; envvars['AVC_CACHE_DIR'] = constants_1.dockerCacheDirpath; envvars['CONTAINER_NAME'] = config.containerName; envvars['INSTANCE_NAME'] = config.instanceName; envvars['FLUSH_DB_ON_RESTART'] = Number(config.flushOnRestart); envvars['RUNNING_FROM_CACHE'] = Number(config.runningFromCache); envvars['URL_REPLACE'] = config.fullUrl; envvars['DOCKER_BRIDGE_IP'] = config.dockerBridgeIP; envvars['ALREADY_INSTALLED_PLUGINS'] = JSON.stringify(JSON.stringify(config.alreadyInstalled)).trim(); var dplugins = __spreadArray(__spreadArray([], config.downloadPlugins, true), ['relative-url'], false); envvars['DOWNLOAD_PLUGINS'] = JSON.stringify(JSON.stringify(dplugins)).trim(); envvars['DOWNLOAD_THEMES'] = JSON.stringify(JSON.stringify(config.downloadThemes ? config.downloadThemes : [])).trim(); envvars['PLUGINS'] = "\"".concat(dplugins.join(' '), "\""); if (config.downloadThemes) { envvars['THEMES'] = "\"".concat(config.downloadThemes.join(' '), "\""); } if (config.ftp) { envvars['FTP_CONFIGS'] = JSON.stringify(JSON.stringify(config.ftp)).trim(); } if (config.ssh) { envvars['SSH_CONFIGS'] = JSON.stringify(JSON.stringify(config.ssh)).trim(); } if (config.uploadsUrl) { envvars['AVC_UPLOADS_BASE_URL'] = config.uploadsUrl; } if (config.containerPort) { envvars['DOCKER_CONTAINER_PORT'] = config.containerPort; } // set default values for various WP envvars // envvars['WORDPRESS_DB_NAME'] = config.instanceName; envvars['WORDPRESS_TABLE_PREFIX'] = 'wp_'; // envvars['WORDPRESS_DB_HOST'] = `wpdb-${config.instanceName}`; envvars['WORDPRESS_DB_HOST'] = "db:3306"; envvars['WORDPRESS_DB_USER'] = 'root'; envvars['WORDPRESS_DB_PASSWORD'] = 'root'; envvars['WORDPRESS_DEBUG'] = 'true'; envvars['WP_DEBUG_DISPLAY'] = 'true'; envvars['WP_DEBUG_LOG'] = 'true'; envvars['WP_LOCALE'] = config.locale; envvars['WP_VERSION'] = config.wordpressVersion; envvars['PHP_VERSION'] = config.phpVersion; envvars['WORDPRESS_APP_IMAGE_NAME'] = config.instanceName; envvars['WORDPRESS_APP_CONTAINER_NAME'] = config.instanceName; envvars['WORDPRESS_APP_HOST_NAME'] = config.hostName; if (config.database) { var _a = config.database, dbName = _a.dbName, dbPrefix = _a.dbPrefix; if (dbName) { envvars['WORDPRESS_DB_NAME'] = dbName; } if (dbPrefix) { envvars['WORDPRESS_TABLE_PREFIX'] = dbPrefix; } } if (userenvs) { // override defaults if they are set in env object Object.keys(userenvs).forEach(function (key) { if (visibleVcBooleans.includes(key)) { if (userenvs[key] === true || userenvs[key] === 1 || userenvs[key] === 'true') { envvars[key] = 'true'; } else if (userenvs[key] === false || userenvs[key] === 0 || userenvs[key] === 'false') { envvars[key] = 'false'; } } }); } // used for accessing constants from PHP $_ENV global envvars['APACHE_ENV_VARS'] = JSON.stringify(JSON.stringify(envvars)).trim(); return envvars; }; exports.default = buildEnvVars;