我正在使用以下堆栈在docker上设置一个简单的环境:
我的简单docker撰写文件如下:
nginx:
build: ../nginx
links:
- wordpress:wordpress
ports:
- "80:80"
- "443:443"
wordpress:
image: wordpress
ports:
- "8082:80"
links:
- mysqlwp:mysql
working_dir: /var/www/html
#volumes:
# - wp-content/:/var/www/html/wp-content
environment:
WORDPRESS_DB_HOST: mysql
WORDPRESS_DB_USER: wordpress
WORDPRESS_DB_PASSWORD: wordpress
WORDPRESS_DB_NAME: wordpress
mysqlwp:
image: mysql
environment:
MYSQL_ROOT_PASSWORD: root
MYSQL_DATABASE: wordpress
MYSQL_USER: wordpress
MYSQL_PASSWORD: wordpress
nginx是从基础映像构建的,配置如下:
upstream wploadbalance{
least_conn;
server wordpress;
}
server {
listen 80;
server_name my.site.com;
location / {
proxy_pass http://wploadbalance;
}
}
现在,当我连接到my.site.com时,我已正确地重定向到我的wordpress实例,但静态文件是从http://wploadbalance
加载的,无法访问。
例如,在我的浏览器控制台中,我看到类似的内容:
获取
http://wploadbalance/wp-includes/js/wp-util.min.js?ver=4.4
净:: ERR_NAME_NOT_RESOLVED
由于wploadbalance
无法从Docker容器外部访问,因此应该通过某种方式向wordpress说明静态文件是从my.site.com
服务的。有谁知道如何实现这个目标?
答案 0 :(得分:0)
<强>解决方案:强>
登录容器:
docker exec -it "name_of_container" bash
将以下行添加到wp-config.php
define('WP_HOME', 'http://your_domain.com');
define('WP_SITEURL', 'http://your_domain.com');