-
Notifications
You must be signed in to change notification settings - Fork 4.3k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Fix Error: Could not process the 'wp-config.php' transformation #29800
Changes from all commits
2742537
7d660da
1f5efe7
42058f4
3f2c8af
a982f82
d62f7b8
0ca4422
9a7f8c3
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -9,6 +9,7 @@ const path = require( 'path' ); | |
* Internal dependencies | ||
*/ | ||
const { hasSameCoreSource } = require( './wordpress' ); | ||
const { dbEnv } = require( './config' ); | ||
|
||
/** | ||
* @typedef {import('./config').WPConfig} WPConfig | ||
|
@@ -176,26 +177,40 @@ module.exports = function buildDockerComposeConfig( config ) { | |
image: 'mariadb', | ||
ports: [ '3306' ], | ||
environment: { | ||
MYSQL_ALLOW_EMPTY_PASSWORD: 'yes', | ||
MYSQL_ROOT_PASSWORD: | ||
dbEnv.credentials.WORDPRESS_DB_PASSWORD, | ||
MYSQL_DATABASE: dbEnv.development.WORDPRESS_DB_NAME, | ||
}, | ||
volumes: [ 'mysql:/var/lib/mysql' ], | ||
}, | ||
'tests-mysql': { | ||
image: 'mariadb', | ||
ports: [ '3306' ], | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. This port is already being used by the There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. I think those ports just denote which ports are exposed within a container. Ports are isolated within individual containers, so if I'm not mistaken there should be no conflict. EDIT: According to compose specification this short notation means that the port |
||
environment: { | ||
MYSQL_ROOT_PASSWORD: | ||
dbEnv.credentials.WORDPRESS_DB_PASSWORD, | ||
MYSQL_DATABASE: dbEnv.tests.WORDPRESS_DB_NAME, | ||
}, | ||
volumes: [ 'mysql-test:/var/lib/mysql' ], | ||
}, | ||
wordpress: { | ||
build: '.', | ||
depends_on: [ 'mysql' ], | ||
image: developmentWpImage, | ||
ports: [ developmentPorts ], | ||
environment: { | ||
WORDPRESS_DB_NAME: 'wordpress', | ||
...dbEnv.credentials, | ||
...dbEnv.development, | ||
}, | ||
volumes: developmentMounts, | ||
}, | ||
'tests-wordpress': { | ||
depends_on: [ 'mysql' ], | ||
depends_on: [ 'tests-mysql' ], | ||
image: testsWpImage, | ||
ports: [ testsPorts ], | ||
environment: { | ||
WORDPRESS_DB_NAME: 'tests-wordpress', | ||
...dbEnv.credentials, | ||
...dbEnv.tests, | ||
}, | ||
volumes: testsMounts, | ||
}, | ||
|
@@ -204,12 +219,20 @@ module.exports = function buildDockerComposeConfig( config ) { | |
image: developmentWpCliImage, | ||
volumes: developmentMounts, | ||
user: cliUser, | ||
environment: { | ||
...dbEnv.credentials, | ||
...dbEnv.development, | ||
}, | ||
}, | ||
'tests-cli': { | ||
depends_on: [ 'tests-wordpress' ], | ||
image: testsWpCliImage, | ||
volumes: testsMounts, | ||
user: cliUser, | ||
environment: { | ||
...dbEnv.credentials, | ||
...dbEnv.tests, | ||
}, | ||
}, | ||
composer: { | ||
image: 'composer', | ||
noahtallen marked this conversation as resolved.
Show resolved
Hide resolved
|
||
|
@@ -228,13 +251,16 @@ module.exports = function buildDockerComposeConfig( config ) { | |
LOCAL_DIR: 'html', | ||
WP_PHPUNIT__TESTS_CONFIG: | ||
'/var/www/html/phpunit-wp-config.php', | ||
...dbEnv.credentials, | ||
...dbEnv.tests, | ||
}, | ||
}, | ||
}, | ||
volumes: { | ||
...( ! config.coreSource && { wordpress: {} } ), | ||
...( ! config.coreSource && { 'tests-wordpress': {} } ), | ||
mysql: {}, | ||
'mysql-test': {}, | ||
'phpunit-uploads': {}, | ||
}, | ||
}; | ||
|
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,23 @@ | ||
// Username and password used in all databases | ||
const credentials = { | ||
WORDPRESS_DB_USER: 'root', | ||
WORDPRESS_DB_PASSWORD: 'password', | ||
}; | ||
|
||
// Environment for test database | ||
const tests = { | ||
WORDPRESS_DB_NAME: 'tests-wordpress', | ||
WORDPRESS_DB_HOST: 'tests-mysql', | ||
}; | ||
|
||
// Environment for development database. DB host gets default value which is set | ||
// elsewhere | ||
const development = { | ||
WORDPRESS_DB_NAME: 'wordpress', | ||
}; | ||
|
||
module.exports = { | ||
credentials, | ||
tests, | ||
development, | ||
}; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Not a big fan of adding an extra MySQL container. It will mean there's a lot of extra memory usage and startup time.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
How about we keep to a single container and create two databases ourselves using
wp db create
?https://developer.wordpress.org/cli/commands/db/create/
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Could that be a follow-up task? It seems higher effort than the current approach
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Yep absolutely.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
How about using one database, and different table prefixes for dev and tests, respectively? The
wordpress
docker image supports aWORDPRESS_TABLE_PREFIX
env variable for that purpose.