如何用Docker启动现有的WordPress的应用程序图像不是默认的80端口?

可能有人知道如何解决我的问题?

如果我使用我现有的应用程序的WP – 内容和现有的数据库,每一次我redirect到本地主机:80端口。 如何在另一个端口启动它,例如可能是8000?

我有一个Wordpress应用程序Dockerfile与下一行:

FROM wordpress:latest COPY ./src /var/www/html ENV WORDPRESS_DB_PASSWORD mypass ENV WORDPRESS_DB_NAME mydb ENV WORDPRESS_DB_HOST mysql:3306 

具有现有数据库转储的MySQL Dockerfile:

 FROM mariadb:10.1.20 COPY dump/dump.sql /docker-entrypoint-initdb.d ENV MYSQL_ROOT_PASSWORD mypass CMD ["mysqld"] 

和docker-compose.yml一起:

 version: '2' services: mysql: build: mysql/ restart: always volumes: - db_data:/var/lib/mysql wordpress: depends_on: - mysql build: wpapp/ ports: - 8000:80 restart: always volumes: db_data: 

感谢大家的帮助!

在你的wp-config.php中用这些行覆盖数据库siteurl和homeurl vales:

 define('WP_HOME', 'http://localhost:8000/'); define('WP_SITEURL', 'http://localhost:8000/'); 

经过多次testing,我可以回顾一下如何解决这个问题。

  1. 在这种情况下,我们需要在db table wp_options中用option_names siteurl改变2行的option_value,并且在home改变http://localhost:8000

  2. 我们需要触发dockerbuild立到容量与MySQL容器。

    docker-compose down -v

    可选的干净dockercaching

    docker rm $(docker ps -aq)

    docker volume rm $(docker volume ls -q)

    docker rmi $(docker images -q)

    这不是课程的select

    docker-compose up -d --build

  3. 最主要的是手动清理浏览器caching,因为它调用更快的redirect,然后caching清理,如果我们在Safari中使用CMD + R ,并且看起来没有任何变化后工作。