-
Notifications
You must be signed in to change notification settings - Fork 4.2k
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 3 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 |
---|---|---|
|
@@ -176,26 +176,41 @@ module.exports = function buildDockerComposeConfig( config ) { | |
image: 'mariadb', | ||
ports: [ '3306' ], | ||
environment: { | ||
MYSQL_ALLOW_EMPTY_PASSWORD: 'yes', | ||
MYSQL_ROOT_PASSWORD: 'password', | ||
MYSQL_DATABASE: 'wordpress', | ||
}, | ||
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: 'password', | ||
MYSQL_DATABASE: 'tests-wordpress', | ||
}, | ||
volumes: [ 'mysql-test:/var/lib/mysql' ], | ||
}, | ||
wordpress: { | ||
build: '.', | ||
depends_on: [ 'mysql' ], | ||
image: developmentWpImage, | ||
ports: [ developmentPorts ], | ||
environment: { | ||
WORDPRESS_DB_NAME: 'wordpress', | ||
WORDPRESS_DB_USER: 'root', | ||
WORDPRESS_DB_PASSWORD: 'password', | ||
}, | ||
volumes: developmentMounts, | ||
}, | ||
'tests-wordpress': { | ||
depends_on: [ 'mysql' ], | ||
depends_on: [ 'tests-mysql' ], | ||
image: testsWpImage, | ||
ports: [ testsPorts ], | ||
environment: { | ||
WORDPRESS_DB_NAME: 'tests-wordpress', | ||
WORDPRESS_DB_USER: 'root', | ||
WORDPRESS_DB_PASSWORD: 'password', | ||
WORDPRESS_DB_HOST: 'tests-mysql', | ||
}, | ||
volumes: testsMounts, | ||
}, | ||
|
@@ -204,12 +219,23 @@ module.exports = function buildDockerComposeConfig( config ) { | |
image: developmentWpCliImage, | ||
volumes: developmentMounts, | ||
user: cliUser, | ||
environment: { | ||
WORDPRESS_DB_NAME: 'wordpress', | ||
WORDPRESS_DB_USER: 'root', | ||
WORDPRESS_DB_PASSWORD: 'password', | ||
}, | ||
}, | ||
'tests-cli': { | ||
depends_on: [ 'tests-wordpress' ], | ||
image: testsWpCliImage, | ||
volumes: testsMounts, | ||
user: cliUser, | ||
environment: { | ||
WORDPRESS_DB_NAME: 'tests-wordpress', | ||
WORDPRESS_DB_USER: 'root', | ||
WORDPRESS_DB_PASSWORD: 'password', | ||
WORDPRESS_DB_HOST: 'tests-mysql', | ||
}, | ||
}, | ||
composer: { | ||
image: 'composer', | ||
noahtallen marked this conversation as resolved.
Show resolved
Hide resolved
|
||
|
@@ -235,6 +261,7 @@ module.exports = function buildDockerComposeConfig( config ) { | |
...( ! config.coreSource && { wordpress: {} } ), | ||
...( ! config.coreSource && { 'tests-wordpress': {} } ), | ||
mysql: {}, | ||
'mysql-test': {}, | ||
'phpunit-uploads': {}, | ||
}, | ||
}; | ||
|
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -140,6 +140,27 @@ module.exports = async function start( { spinner, debug, update, xdebug } ) { | |
: [], | ||
} ); | ||
|
||
await dockerCompose.exec( 'wordpress', 'chown www-data:www-data wp-config.php', { | ||
config: dockerComposeConfigPath, | ||
log: debug, | ||
} ) | ||
|
||
await dockerCompose.exec( 'wordpress', 'chmod 777 wp-config.php', { | ||
config: dockerComposeConfigPath, | ||
log: debug, | ||
} ) | ||
|
||
await dockerCompose.exec( 'tests-wordpress', 'chown www-data:www-data wp-config.php', { | ||
config: dockerComposeConfigPath, | ||
log: debug, | ||
} ) | ||
|
||
await dockerCompose.exec( 'tests-wordpress', 'chmod 777 wp-config.php', { | ||
config: dockerComposeConfigPath, | ||
log: debug, | ||
} ) | ||
|
||
|
||
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'm not sure that manually changing permissions for 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 you have a good point that configuration should be set idiomatically via docker-compose configuration. However, I think it would still make sense to fix Thoughts? 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. We've had to update permissions for some of these files to get them to work in wp-env before, so I'm not against it 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 don't think we should use 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'm not totally sure, but I think that's no longer true per docker-library/wordpress#557, which has
|
||
// Only run WordPress install/configuration when config has changed. | ||
if ( shouldConfigureWp ) { | ||
spinner.text = 'Configuring WordPress.'; | ||
|
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.