Ejecutando wordpress en docker. Intentando omitir install install.php definiendo el usuario en el archivo de redacción. Ya he agregado el usuario, la contraseña y el título de wordpress para omitir esa página. pero no funciona.
¿Hay algún problema con mi código? ¿Hay otra manera de hacerlo? o ayúdame a arreglar este código.
version: '3.3' services: db: image: mysql:5.7 volumes: - ./db-data:/var/lib/mysql restart: always environment: MYSQL_ROOT_PASSWORD: somewordpress MYSQL_DATABASE: wordpress MYSQL_USER: wordpress MYSQL_PASSWORD: wordpress wordpress: depends_on: - db image: wordpress:latest volumes: - ./wordpress:/var/www/html - ./docker/wordpress/php/php.ini:/usr/local/etc/php/conf.d/php.ini:ro ports: - "8000:80" restart: always environment: WORDPRESS_VERSION: 5.1 WORDPRESS_LOCALE: en_US WORDPRESS_DB_HOST: db:3306 WORDPRESS_DB_USER: wordpress WORDPRESS_DB_PASSWORD: wordpress WORDPRESS_TABLE_PREFIX: "wp_" WORDPRESS_DEBUG: 1 WORDPRESS_DB_NAME: wordpress # WORDPRESS_WEBSITE_TITLE: "My blog" # WORDPRESS_WEBSITE_URL: "http://example.com" # WORDPRESS_WEBSITE_URL_WITHOUT_HTTP: "example.com" # WORDPRESS_WEBSITE_URL: "http://http://localhost:8000" # WORDPRESS_WEBSITE_URL_WITHOUT_HTTP: "localhost" # WORDPRESS_WEBSITE_POST_URL_STRUCTURE: "/%year%/%monthnum%/%day%/%postname%/" # WORDPRESS_ADMIN_USER: "admin" # WORDPRESS_ADMIN_PASSWORD: "admin" # WORDPRESS_ADMIN_EMAIL: "admin@admin.com" working_dir: /var/www/html wordpress-cli: depends_on: - db - wordpress image: wordpress:cli entrypoint: wp user: xfs command: > /bin/sh -c ' sleep 10; wp core install --url="http://localhost:8000" --title="Sample Title" --admin_name=admin --admin_password=admin --admin_email=you@domain.com ' volumes: - ./wordpress:/var/www/html - ./docker/wordpress/php/php.ini:/usr/local/etc/php/conf.d/php.ini:ro volumes: db_data: {} wordpress:Tengo este error:
C:\DockerProjects\test6>docker-compose up ERROR: yaml.scanner.ScannerError: while scanning a simple key in ".\docker-compose.yml", line 54, column 6 could not find expected ':' in ".\docker-compose.yml", line 55, column 6El problema está en esta parte del código.
user: xfs command: > /bin/sh -c ' sleep 10; wp core install --url="http://localhost:8000" --title="Sample Title" --admin_name=admin --admin_password=admin --admin_email=you@domain.com 'tiene que ser asi
user: xfs command: > /bin/sh -c ' sleep 10; wp core install --url="http://localhost:8000" --title="Sample Title" --admin_name=admin --admin_password=admin --admin_email=you@domain.com ' después command: > las siguientes 2 líneas necesitas dar 1 tabulador.
Puede verificar su código con el formateador en línea aquí.
Edición 1:
El código formateado se ve así
version: '3.3' services: db: image: 'mysql:5.7' volumes: - './db-data:/var/lib/mysql' restart: always environment: null MYSQL_ROOT_PASSWORD: somewordpress MYSQL_DATABASE: wordpress MYSQL_USER: wordpress MYSQL_PASSWORD: wordpress wordpress: depends_on: - db image: 'wordpress:latest' volumes: - './wordpress:/var/www/html' - './docker/wordpress/php/php.ini:/usr/local/etc/php/conf.d/php.ini:ro' ports: - '8000:80' restart: always environment: null WORDPRESS_VERSION: 5.1 WORDPRESS_LOCALE: en_US WORDPRESS_DB_HOST: 'db:3306' WORDPRESS_DB_USER: wordpress WORDPRESS_DB_PASSWORD: wordpress WORDPRESS_TABLE_PREFIX: wp_ WORDPRESS_DEBUG: 1 WORDPRESS_DB_NAME: wordpress working_dir: /var/www/html wordpress-cli: depends_on: - db - wordpress image: 'wordpress:cli' entrypoint: wp user: xfs command: "/bin/sh -c ' sleep 10; wp core install --url=\"http://localhost:8000\" --title=\"Sample Title\" --admin_name=admin --admin_password=admin --admin_email=you@domain.com '\n" volumes: - './wordpress:/var/www/html' - './docker/wordpress/php/php.ini:/usr/local/etc/php/conf.d/php.ini:ro' volumes: db_data: {} wordpress: nullPuede instalar wordpress Cli en el archivo de redacción. o puede copiar wp cli en la imagen usando dockerfile e instalar wordpress usando un punto de entrada personalizado.
Encontré esto en dockerhub :
Desde marzo de 2021, las imágenes de WordPress utilizan un wp-config.php personalizado que extrae los valores directamente de las variables de entorno definidas anteriormente (ver wp-config-docker.php en docker-library/wordpress#572 y docker-library/wordpress#577 ). Como resultado de leer las variables de entorno directamente, el contenedor cli también necesita el mismo conjunto de variables de entorno para evaluar correctamente wp-config.php.
Por lo tanto, debe configurar el entorno como en su wordpress original, como a continuación (lo que funcionó para mí, también usando traefik ..):
version: "3.9" services: db: image: mysql:5.7 volumes: - ./db:/var/lib/mysql restart: always environment: MYSQL_ROOT_PASSWORD: somewordpress MYSQL_DATABASE: wordpress MYSQL_USER: wordpress MYSQL_PASSWORD: wordpress wordpress: depends_on: - db image: wordpress:latest restart: always environment: &env WORDPRESS_DB_HOST: db:3306 WORDPRESS_DB_USER: wordpress WORDPRESS_DB_PASSWORD: wordpress WORDPRESS_DB_NAME: wordpress WORDPRESS_CONFIG_EXTRA: | define( 'AUTOMATIC_UPDATER_DISABLED', true ); define( 'FS_METHOD', 'direct' ); volumes: - &html ./html:/var/www/html labels: &lab - "traefik.enable=true" - "traefik.port=80" - "traefik.frontend.rule=Host:subdomain.domain.com" networks: - default - web wordpress-cli: image: wordpress:cli depends_on: - db - wordpress environment: <<: *env volumes: - *html entrypoint: sh command: -c 'sleep 10; wp core install --url="https://subdomain.domain.com" --title="greatname" --admin_name=admin --admin_password="mysupersecureadminpw" --admin_email=my@domain.com' networks: web: external: true También puede omitir el punto de entrypoint y la parte del command y simplemente ejecutar docker-compose run wordpress-cli core install ... después de comprobar que todo se está ejecutando. Si entrypoint la parte del punto de entrada, también puede ejecutar cualquier otro comando wp-cli en lugar de core install de esa manera :-)