【问题标题】:How to mount wordpress files into exists directory?如何将 wordpress 文件挂载到存在目录中?
【发布时间】:2018-06-05 06:12:47
【问题描述】:

大家!

问题如下:

我有 docker-compose.yml 文件,其中包含 nginx、nuxt、wordpress 和 mysql 的设置。 我无法将 wordpress 文件从图像挂载到本地目录。

我做错了什么?

docker-compose.yml

version: '3'
services:
  nginx:
    image: nginx:alpine
    ports:
      - "80:80"
    depends_on:
      - nuxt
      - wp
    volumes:
      - ./nginx/nginx.conf:/etc/nginx/conf.d/default.conf
      - ./logs/nginx:/var/log/nginx
    networks:
      - flat-network
  nuxt:
    build: ./nuxt
    depends_on:
      - wp
      - db
    environment:
      HOST: "0.0.0.0"
    volumes:
      - ./nuxt:/myapp
    networks:
      - flat-network
  wp:
    build: ./wp
    depends_on:
      - db
    environment:
      WORDPRESS_DB_HOST: "db:3306"
    env_file: .env
    volumes:
      - ./wp:/var/www/html
    networks:
      - flat-network
  db:
    build: mysql
    env_file: .env
    ports:
      - '3306:3306'
    networks:
      - flat-network

  networks:
    flat-network:

wordpress 的 Dockerfile:

FROM wordpress:php7.2-fpm-alpine

COPY cmd.sh /usr/local/bin/
RUN chmod +x /usr/local/bin/cmd.sh
ENTRYPOINT ["cmd.sh"]
CMD ["cmd.sh"]

【问题讨论】:

    标签: wordpress docker docker-compose


    【解决方案1】:

    尝试在卷中给出绝对路径[例如/home/user/wp]并检查是否已创建“wp”文件夹。

    【讨论】:

    • 是的,它可以工作,但是会创建一个空文件夹。但我需要获取包含的文件夹。
    • 创建容器后,检查容器内的文件夹和文件 [例如 /myapp] 。将整体权限授予 /home/user/wp。 chmod -R 755 *
    【解决方案2】:

    为 wordpress 编写 Docker 文件

    先清理旧文件夹并新建一个文件夹或删除已挂载的卷,如db、wp文件夹,然后重新运行应用程序

    要从头开始,请按照以下步骤操作

    docker-compose.yml

    version: '2'
    
    services:
      nginx:
        image: nginx:latest
        ports:
            - '80:80'
        volumes:
            - ./nginx:/etc/nginx/conf.d
            - ./html:/var/www/html
        links:
            - wordpress
        restart: always
    
      mysql:
        image: mariadb
        ports:
            - '3306:3306'
        volumes:
            - /var/db/mysql_backup_folder3/test/mysql:/var/lib/mysql
        environment:
            - MYSQL_USER=test
            - MYSQL_ROOT_PASSWORD=TestDb123
            - MYSQL_DATABASE=testdb
            - MYSQL_PASSWORD=TestDb123
        restart: always
    
      wordpress:
        image: wordpress:4.7.1-php7.0-fpm
        ports:
            - '9000:9000'
        volumes:
            - ./html:/var/www/html
        environment:
            - WORDPRESS_DB_NAME=testdb
            - WORDPRESS_DB_USER=test
            - WORDPRESS_DB_HOST=mysql
            - WORDPRESS_DB_PASSWORD=TestDb123
        links:
            - mysql
        restart: always
    

    创建 nginx 文件夹

    将以下文件添加到 nginx 文件夹中

    wordpress.conf

    server {
         listen 80;
         server_name example.com;
    
         root /var/www/html;
         index index.php;
    
         access_log /var/log/nginx/access.log;
         error_log /var/log/nginx/error.log;
    
         location / {
             try_files $uri $uri/ /index.php?$args;
         }
    
         location ~ \.php$ {
             try_files $uri =404;
             fastcgi_split_path_info ^(.+\.php)(/.+)$;
             fastcgi_pass wordpress:9000;
             fastcgi_index index.php;
             include fastcgi_params;
             fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
             fastcgi_param PATH_INFO $fastcgi_path_info;
         }
     }
    

    运行

    docker-compose up -d

    现在您将看到 html 文件夹中的内容,您可以在其中看到与 wordpress 相关的代码。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-01-08
      • 1970-01-01
      • 2019-09-23
      • 1970-01-01
      • 2020-03-23
      • 2018-08-25
      相关资源
      最近更新 更多