Soy un poco nuevo en Docker, pero estoy buscando esto desde hace bastante tiempo.
Uso docker casi siempre con este contenedor: https://hub.docker.com/_/wordpress/ , porque la mayoría de mis proyectos están basados en WordPress.
El punto es que cada vez que ejecuto este contenedor, lo ejecuto en un dominio localhost. Ahora, en la empresa en la que trabajo, todavía usamos Virtual Machine. Aquí tengo un archivo 'homestead.yml', donde puedo agregar un dominio personalizado y su ruta. También necesito agregar esto a mi archivo de hosts y ejecutar una disposición vagabunda.
No quiero usar Virtual Machine en esta Mac, porque me gusta la velocidad de usar Docker, pero quiero los dominios personalizados. Por ejemplo; Trabajo en un proyecto llamado 'gafas de sol', quiero crear un dominio local llamado 'gafas de sol.local' para mi entorno local. Pero parece que no puedo hacerlo funcionar...
Mi archivo docker-compose se ve así:
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:Estoy usando Gasmask (ver: http://clock.ee/ ) para editar mi archivo de hosts y ya agregué el dominio que quiero usar con la dirección IP correcta.
¿Alguna idea de lo que me estoy perdiendo? Ahora no tenía que colocar la dirección de dominio en mi archivo docker-compose. Intenté agregarlo en 'puertos', pero esto ni siquiera ejecutó mi archivo docker-compose. Espero que alguien sepa lo que estoy haciendo mal.
En el trabajo, usamos dnsmasq para pasar solicitudes a TLD que terminan en .docker a localhost. Aquí es cómo:
Requisitos: homebrew y acceso de administración
Para reenviar TLD .docker , instale y configure 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 dnsmasqNota: El resolver comenzará a funcionar después de un reinicio
Modificar /usr/local/etc/dnsmasq.conf
... listen-address=127.0.0.1 ... conf-dir=/usr/local/etc/dnsmasq.d/,*.confProbar el servidor 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: 45Probar la configuración
; 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 msVerifique que los TLD .docker estén funcionando
$ ping -c 1 test.docker PING test.docker (127.0.0.1): 56 data bytesFuente: Curiosidad pasajera