Loo*_*e94 6 wordpress localhost docker docker-compose
我对 docker 有点陌生,但是我已经搜索了很长时间了。
我几乎总是在这个容器中使用 docker:https : //hub.docker.com/_/wordpress/,因为我的大部分项目都是基于 WordPress 的。
关键是每次我运行这个容器时,我都是在本地主机域上运行它。现在在我工作的公司,我们仍在使用虚拟机。这里我有一个“homestead.yml”文件,我可以添加自定义域及其路径。我还需要将它添加到我的主机文件中,并运行一个 vagrant 配置。
我不想在这台 Mac 上使用虚拟机,因为我喜欢使用 Docker 的速度,但我确实想要自定义域。例如; 我从事一个名为“sunglasses”的项目,我想为我的本地环境创建一个名为“sunglasses.local”的本地域。但我似乎无法让它工作......
我的 docker-compose 文件如下所示:
version: '3.1'
services:
wordpress:
depends_on:
- db
image: wordpress:latest
restart: unless-stopped
working_dir: /var/www/html
volumes:
- ./wp-content:/var/www/html/wp-content
# - /Users/username/dev/wordpress-foundation-boilerplate/wp-content:/var/www/html/wp-content
# - /Users/username/dev/docker-wp-demo/uploads.ini:/usr/local/etc/php/conf.d/uploads.ini
environment:
WORDPRESS_DB_NAME: database
WORDPRESS_DB_HOST: db:3306
WORDPRESS_DB_PASSWORD: p4ssw0rd!
WORDPRESS_TABLE_PREFIX: wp_
WORDPRESS_DEBUG: 1
WORDPRESS_CONFIG_EXTRA: | # Add config to wp-config.php
define('FS_METHOD', 'direct');
define('WP_DEBUG_LOG', true);
define( 'WP_DEBUG', true );
ports:
- 8000:80
- 443:443
networks:
- back
db:
image: mysql:5.7
restart: unless-stopped
volumes:
- db_data:/var/lib/mysql
environment:
MYSQL_ROOT_PASSWORD: p4ssw0rd!
networks:
- back
phpmyadmin:
depends_on:
- db
image: phpmyadmin/phpmyadmin
restart: always
ports:
- 8080:80
environment:
PMA_HOST: db
MYSQL_ROOT_PASSWORD: p4ssw0rd!
networks:
- back
networks:
back:
volumes:
db_data:
Run Code Online (Sandbox Code Playgroud)
我正在使用 Gasmask(参见:http ://clock.ee/ )来编辑我的主机文件,并且已经添加了我想要使用正确 IP 地址的域。
知道我错过了什么吗?我现在不需要将域地址放在我的 docker-compose 文件中。我曾尝试将它添加到“端口”下,但这甚至没有运行我的 docker-compose 文件。我希望有人知道我做错了什么。
在工作中,我们使用 dnsmasq 将请求传递到以 localhost 结尾的 TLD .docker。具体方法如下:
要求:自制程序和管理访问权限
要转发.dockerTLD,请安装并配置Dnsmasq.
$ brew up && brew install dnsmasq
$ sudo mkdir -p /etc/resolver
$ echo 'nameserver 127.0.0.1' | sudo tee -a /etc/resolver/docker > /dev/null
$ echo 'address=/docker/127.0.0.1' | tee -a /usr/local/etc/dnsmasq.d/docker-tld.conf > /dev/null
$ sudo brew services start dnsmasq
Run Code Online (Sandbox Code Playgroud)
注意:解析器将在重新启动后开始工作
调整/usr/local/etc/dnsmasq.conf
...
listen-address=127.0.0.1
...
conf-dir=/usr/local/etc/dnsmasq.d/,*.conf
Run Code Online (Sandbox Code Playgroud)
测试 DNS 服务器
$ dig test.docker @127.0.0.1
; <<>> DiG 9.9.7-P3 <<>> test.docker @127.0.0.1
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 40401
;; flags: qr aa rd ra ad; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 0
;; QUESTION SECTION:
;test.docker. IN A
;; ANSWER SECTION:
test.docker. 0 IN A 127.0.0.1
;; Query time: 0 msec
;; SERVER: 127.0.0.1#53(127.0.0.1)
;; WHEN: Thu Feb 08 16:24:12 CET 2018
;; MSG SIZE rcvd: 45
Run Code Online (Sandbox Code Playgroud)
测试配置
; Make sure your DNS is still working.
$ ping -c 1 www.google.com
PING www.google.com (216.58.206.4): 56 data bytes
64 bytes from 216.58.206.4: icmp_seq=0 ttl=53 time=26.789 ms
--- www.google.com ping statistics ---
1 packets transmitted, 1 packets received, 0.0% packet loss
round-trip min/avg/max/stddev = 26.789/26.789/26.789/0.000 ms
Run Code Online (Sandbox Code Playgroud)
检查 .docker TLD 是否正常工作
$ ping -c 1 test.docker
PING test.docker (127.0.0.1): 56 data bytes
Run Code Online (Sandbox Code Playgroud)
来源:好奇心传递
| 归档时间: |
|
| 查看次数: |
1837 次 |
| 最近记录: |