为现有的Wordpress网站设置Docker容器

时间:2019-07-15 04:06:56

标签: mysql wordpress docker

我正在尝试为cPanel上托管的现有wordpress网站设置开发环境。

我已经从现有的生产前数据库中导出了测试数据,并将其导入到在其中一个容器中运行的mysql中。

version: '3.3'

services:
  db:
    image: mysql:latest
    command: --default-authentication-plugin=mysql_native_password
    restart: always
    environment:
      MYSQL_ROOT_PASSWORD: P@ssw0rd
      MYSQL_DATABASE: wordpress
      MYSQL_USER: wordpress
      MYSQL_PASSWORD: wordpress
    ports:
      - "3306:3306"
    volumes:
      - db_data:/var/lib/mysql


  wordpress:
    depends_on:
      - db
    image: wordpress:latest
    ports:
      - "8000:80"
    restart: always
    environment:
      WORDPRESS_DB_HOST: db:3306
      WORDPRESS_DB_USER: wordpress
      WORDPRESS_DB_PASSWORD: wordpress
      WORDPRESS_DB_NAME: wordpress
    volumes:
      - /local/path/to/wordpress/src/:/var/www/html

volumes:
    db_data: {}

一切正常。现在,我将数据库转储插入到容器中的mysql数据库中

cat dump.sql | docker exec -i docker_db_1 /usr/bin/mysql -u wordpress --password=wordpress wordpress

完成而没有错误。现在尝试访问localhost:8000上的网站时,将弹出Apache Ubuntu默认页面,但是我无法从现有的wordpress网站上看到任何内容。

1 个答案:

答案 0 :(得分:0)

此设置对我有用

docker-compose.yml

版本:“ 3.6”   服务:

wordpress:
  image: wordpress:${WORDPRESS_VERSION}
  container_name: wordpress
  volumes:
    - ${WORDPRESS_DATA_DIR}:/var/www/html
  environment:
    - WORDPRESS_DB_NAME=${WORDPRESS_DB_NAME}
    - WORDPRESS_DB_HOST=${WORDPRESS_DB_HOST}
    - WORDPRESS_DB_USER=${WORDPRESS_DB_USER}
    - WORDPRESS_DB_PASSWORD=${WORDPRESS_DB_PASSWORD}
  depends_on:
    - mysql
  restart: always

mysql:
  image: mysql:${MYSQLDB_VERSION}
  container_name: mysql
  command: --default-authentication-plugin=mysql_native_password
  restart: always
  environment:
    - MYSQL_ROOT_PASSWORD=${MYSQL_ROOT_PASSWORD}
    - MYSQL_USER=${MYSQL_USER}
    - MYSQL_PASSWORD=${MYSQL_PASSWORD}
    - MYSQL_DATABASE=${MYSQL_DATABASE}
  ports:
    - 3306:3306
  volumes:
    - ./mysql:/var/lib/mysql
    - ./mysql_config:/tmp/mysql_config

nginx:
  image: nginx:${NGINX_VERSION:-latest}
  container_name: nginx
  ports:
    - '80:80'
    - '443:443'
  volumes:
    - ${NGINX_CONF_DIR}:/etc/nginx/conf.d
    - ${NGINX_LOG_DIR}:/var/log/nginx
    - ${WORDPRESS_DATA_DIR}:/var/www/html
  depends_on:
    - wordpress
  restart: always

所有使用的变量都首先设置为环境变量。 要使用以下命令连接到任何容器:

docker exec -i -t <wordpress|mysql|nginx> /bin/bash