首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Docker上的Wordpress套语。试图跳过安装页面

Docker上的Wordpress套语。试图跳过安装页面
EN

Stack Overflow用户
提问于 2019-06-11 10:14:30
回答 3查看 1.1K关注 0票数 3

在码头上运行wordpress。试图通过在撰写文件中定义用户来跳过安装install.php。我已经添加了wordpress用户,密码和标题,以跳过该页。但不起作用。

我的代码有问题吗?还有别的办法吗。或者帮我解决这段代码。

代码语言:javascript
复制
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:

得到了这个错误:

代码语言:javascript
复制
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 6
EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2019-07-03 09:58:55

您可以在撰写文件中安装wordpress Cli。或者您可以使用dockerfile将wp复制到映像中,然后使用自定义入口点安装wordpress。

票数 0
EN

Stack Overflow用户

发布于 2019-06-11 10:54:07

问题在于代码的这一部分。

代码语言:javascript
复制
 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 '

一定是这样的

代码语言:javascript
复制
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 '

command: >接下来的2行之后,您需要给出1Tab。

您可以使用联机格式化程序这里。检查代码。

编辑1:

格式化代码如下所示

代码语言:javascript
复制
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: null
票数 1
EN

Stack Overflow用户

发布于 2021-06-30 21:33:06

我在码头枢纽上找到了这个

自2021年3月以来,WordPress映像使用了一个定制的wp-config.php,它直接从上面定义的环境变量中提取值(参见docker/wordpress#572和docker-library/wordpress#577中的wp docker.php)。由于直接读取环境变量,cli容器还需要同一组环境变量来正确评估wp-config.php。

因此,您需要在原来的wordpress中设置环境,如下所示(这对我有用,也使用traefik..):

代码语言:javascript
复制
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

您还可以省略entrypointcommand部分,只需在检查所有内容都在运行后运行docker-compose run wordpress-cli core install ...即可。如果删除entrypoint部件,还可以运行任何其他wp-cli命令,而不是core install :-)

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56541456

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档