cytopia / devilbox

A modern Docker LAMP stack and MEAN stack for local development
http://devilbox.org
MIT License
4.37k stars 653 forks source link

[Bug]: AutoDNS not working on Mac OS #892

Closed jakeparis closed 2 years ago

jakeparis commented 2 years ago

Have you already looked into this bug?

(Optional) Error message

No response

What went wrong?

On my Mac, AutoDNS used to work just fine. I have my tld set to to .local and so all I needed to do was create a directory in my data root (for example foobar), and then visit it at https://foobar.local.

Now this no longer works. The only way I can get to the domain is by manually adding a /etc/hosts entry (e.g. 127.0.0.1 foobar.local) for every domain I create.

Expected behaviour

My expectation is that simply by adding a directory in my data root, it is picked up in DNS

How can we reproduce the bug?

I have devilbox checked out to the v2.1.1 branch.

I have run

docker-compose stop 
docker-compose rm -f
docker-compose pull

I have the following in my .env:

LOCAL_LISTEN_ADDR=127.0.0.1:
...
TLD_SUFFIX=local
...
HOST_PORT_BIND=53

I have 127.0.0.1 set in my network settings as the top DNS Server for the active network.

I turned on BIND_LOG_DNS_QUERIES=1 and when I look at the docker logs, I can see hits when I visit the devilbox intranet page, and I can see hits for my regular web browsing (I guess since the 127.0.0.1 is set as the first DNS resolver), but when I visit one of my project domains (foobar.local), I get no logs at all.

On the Virtual Hosts page of the intranet, all my projects are listed there, but they are all listed with _ERR | No Host DNS record found.`

Host Operating System

macOS

Host Platform (amd64, arm64, other)

other

(Linux only) Is SELinux enabled?

I am not on Linux

Docker version

Docker version 20.10.13, build a224086

Docker Compose version

docker-compose version 1.29.2, build 5becea4c

Devilbox version

v2.1.1

Have you removed stopped containers before starting?

Yes

Have you pulled latest Docker images before starting?

Yes

Devilbox start command

docker-compose up -d bind httpd mysql php memcd

Config: .env file

See above for relevant bits

Config: docker-compose.override.yml

No response

Config: ./check-config.sh

Everything is listed as SUCCESS, except:

# ==============================================================================
# Checking projects settings
# ==============================================================================
[ERR]   Project 'XYZ1.local' has no valid DNS record
[ERR]   Project 'XYZ1-com.local' has no valid DNS record
[ERR]   Project 'XYZ1-projects.local' has no valid DNS record
[ERR]   Project 'other.local' has no valid DNS record
[ERR]   Project 'proxy-rewrite.local' has no valid DNS record
[ERR]   Project 'webservices.local' has no valid DNS record
[SUCC]  All projects have valid HTTPD_DOCROOT_DIR

### Log: docker-compose logs

```shell
Attaching to devilbox_mysql_1, devilbox_memcd_1, devilbox_httpd_1, devilbox_php_1, devilbox_bind_1
bind_1   | [INFO] Debug level: 2
bind_1   |
bind_1   | --------------------------------------------------------------------------------
bind_1   | /etc/bind/named.conf
bind_1   | --------------------------------------------------------------------------------
bind_1   | include "/etc/bind/named.conf.logging";
bind_1   | include "/etc/bind/named.conf.options";
bind_1   | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
bind_1   | [INFO] BIND logging: disabled explicitly
bind_1   | [INFO] Using default DNS TTL time: 3600 sec
bind_1   | [INFO] Using default DNS Refresh time: 1200 sec
bind_1   | [INFO] Using default DNS Retry time: 180 sec
bind_1   | [INFO] Using default DNS Expiry time: 1209600 sec
bind_1   | [INFO] Using default DNS Max Cache time: 10800 sec
bind_1   | [INFO] Not adding any PTR records
bind_1   | [INFO] Adding A Record: *.local -> 127.0.0.1
bind_1   | zone rpz/IN: loaded serial 1650553164
bind_1   | OK
bind_1   | [INFO] Not adding any CNAME records
bind_1   | [INFO] $ALLOW_QUERY not set.
bind_1   | [INFO] DNS query rules will not be set
bind_1   | [INFO] $ALLOW_RECURSION not set.
bind_1   | [INFO] DNS recursion rules will not be set
bind_1   | [INFO] DNSSEC Validation: no
bind_1   | [INFO] Adding custom DNS forwarder: 8.8.8.8,8.8.4.4
bind_1   |
bind_1   | --------------------------------------------------------------------------------
bind_1   | /etc/bind/named.conf.options
bind_1   | --------------------------------------------------------------------------------
bind_1   | options {
bind_1   |     directory "/var/cache/bind";
bind_1   |     dnssec-validation no;
bind_1   |     auth-nxdomain no;    # conform to RFC1035
bind_1   |     listen-on-v6 { any; };
bind_1   |     response-policy { zone "rpz"; };
bind_1   |     forwarders {
bind_1   |         8.8.8.8;
bind_1   |         8.8.4.4;
bind_1   |     };
bind_1   | };
bind_1   | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
bind_1   |
bind_1   | --------------------------------------------------------------------------------
bind_1   | /etc/bind/custom/conf/rpz.conf
bind_1   | --------------------------------------------------------------------------------
bind_1   | zone "rpz" IN {
bind_1   |     type master;
bind_1   |     allow-transfer { any; };
bind_1   |     allow-update { any; };
bind_1   |     file "/etc/bind/custom/zone/rpz";
bind_1   | };
bind_1   | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
bind_1   |
bind_1   | --------------------------------------------------------------------------------
bind_1   | /etc/bind/custom/zone/rpz
bind_1   | --------------------------------------------------------------------------------
bind_1   | $TTL 3600
bind_1   | @                               IN   SOA     bind. admin.bind. (
bind_1   |                                              1650553164     ; Serial number
bind_1   |                                              1200           ; Refresh time
bind_1   |                                              180            ; Retry time
bind_1   |                                              1209600        ; Expiry time
bind_1   |                                              10800          ; Negative Cache TTL
bind_1   | )
bind_1   |
bind_1   | ; NS Records
bind_1   |                                 IN   NS      bind.
bind_1   |
bind_1   | ; Custom Records
bind_1   | *.local                         IN   A       127.0.0.1
bind_1   | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
bind_1   | [INFO] Starting BIND 9.16.27
mysql_1  | 2022-04-21 14:59:28+00:00 [Note] [Entrypoint]: Entrypoint script for MariaDB Server 1:10.5.15+maria~focal started.
mysql_1  | 2022-04-21 14:59:29+00:00 [Note] [Entrypoint]: Switching to dedicated user 'mysql'
mysql_1  | 2022-04-21 14:59:29+00:00 [Note] [Entrypoint]: Entrypoint script for MariaDB Server 1:10.5.15+maria~focal started.
mysql_1  | 2022-04-21 14:59:29+00:00 [Note] [Entrypoint]: MariaDB upgrade information missing, assuming required
mysql_1  | 2022-04-21 14:59:29+00:00 [Note] [Entrypoint]: MariaDB upgrade (mysql_upgrade) required, but skipped due to $MARIADB_AUTO_UPGRADE setting
mysql_1  | 2022-04-21 14:59:29 0 [Note] mysqld (mysqld 10.5.15-MariaDB-1:10.5.15+maria~focal-log) starting as process 1 ...
mysql_1  | 2022-04-21 14:59:29 0 [Note] InnoDB: Uses event mutexes
mysql_1  | 2022-04-21 14:59:29 0 [Note] InnoDB: Compressed tables use zlib 1.2.11
mysql_1  | 2022-04-21 14:59:29 0 [Note] InnoDB: Number of pools: 1
mysql_1  | 2022-04-21 14:59:29 0 [Note] InnoDB: Using crc32 + pclmulqdq instructions
mysql_1  | 2022-04-21 14:59:29 0 [Note] mysqld: O_TMPFILE is not supported on /tmp (disabling future attempts)
mysql_1  | 2022-04-21 14:59:29 0 [Note] InnoDB: Using Linux native AIO
mysql_1  | 2022-04-21 14:59:29 0 [Note] InnoDB: Initializing buffer pool, total size = 134217728, chunk size = 134217728
mysql_1  | 2022-04-21 14:59:29 0 [Note] InnoDB: Completed initialization of buffer pool
mysql_1  | 2022-04-21 14:59:29 0 [Note] InnoDB: 128 rollback segments are active.
mysql_1  | 2022-04-21 14:59:29 0 [Note] InnoDB: Creating shared tablespace for temporary tables
mysql_1  | 2022-04-21 14:59:29 0 [Note] InnoDB: Setting file './ibtmp1' size to 12 MB. Physically writing the file full; Please wait ...
mysql_1  | 2022-04-21 14:59:29 0 [Note] InnoDB: File './ibtmp1' size is now 12 MB.
mysql_1  | 2022-04-21 14:59:29 0 [Note] InnoDB: 10.5.15 started; log sequence number 1302559411; transaction id 692209
mysql_1  | 2022-04-21 14:59:29 0 [Note] InnoDB: Loading buffer pool(s) from /var/lib/mysql/ib_buffer_pool
mysql_1  | 2022-04-21 14:59:29 0 [Note] Plugin 'FEEDBACK' is disabled.
mysql_1  | 2022-04-21 14:59:29 0 [Note] InnoDB: Buffer pool(s) load completed at 220421 14:59:29
mysql_1  | 2022-04-21 14:59:29 0 [Note] Server socket created on IP: '::'.
mysql_1  | 2022-04-21 14:59:29 0 [Warning] 'proxies_priv' entry '@% root@mysql' ignored in --skip-name-resolve mode.
mysql_1  | 2022-04-21 14:59:29 0 [Note] Reading of all Master_info entries succeeded
mysql_1  | 2022-04-21 14:59:29 0 [Note] Added new Master_info '' to hash table
mysql_1  | 2022-04-21 14:59:29 0 [Note] mysqld: ready for connections.
mysql_1  | Version: '10.5.15-MariaDB-1:10.5.15+maria~focal-log'  socket: '/run/mysqld/mysqld.sock'  port: 3306  mariadb.org binary distribution
httpd_1  | [INFO] Debug level: 2
httpd_1  | [INFO] Runtime debug: 2
httpd_1  | [INFO] Changing user 'www-data' uid to: 267164627
httpd_1  | root $ usermod -u 267164627 www-data
httpd_1  | [INFO] Changing group 'www-data' gid to: 701479588
httpd_1  | root $ groupmod -g 701479588 www-data
httpd_1  | [INFO] Setting container timezone to: EST
httpd_1  | root $ ln -sf /usr/share/zoneinfo/EST /etc/localtime
httpd_1  | [INFO] Docker date set to: Thu Apr 21 09:59:28 EST 2022
httpd_1  | [INFO] $DOCKER_LOGS disabled. Logging errors and access to log files inside container.
httpd_1  | [INFO] PHP 5.2 compatibility mode: Disabled
httpd_1  | [INFO] PHP-FPM: Enabled
httpd_1  | [INFO] PHP-FPM: Server address: 172.16.238.10
httpd_1  | [INFO] PHP-FPM: Server port: 9000
httpd_1  | [INFO] PHP-FPM: Timeout: 180
httpd_1  | [INFO] http2: Enabled
httpd_1  | [INFO] Main vhost: Enabled
httpd_1  | [INFO] Main vhost: Setting SSL type to: http and https
httpd_1  | [INFO] Main vhost: Enable automatic generation of SSL certificates
httpd_1  | [INFO] Main vhost: SSL CN: localhost,*.localhost,devilbox,*.devilbox,httpd
httpd_1  | [INFO] $MAIN_VHOST_DOCROOT not specified. Keeping default: htdocs
httpd_1  | [INFO] $MAIN_VHOST_TPL not specified. Keeping default: cfg
httpd_1  | [INFO] Main vhost: Enabling httpd status page
httpd_1  | [INFO] Main vhost: Changing status page alias to: /devilbox-httpd-status
httpd_1  | [INFO] Mass vhost: Enabled
httpd_1  | [INFO] Mass vhost: Setting SSL type to: http and https
httpd_1  | [INFO] Mass vhost: Enable automatic generation of SSL certificates
httpd_1  | [INFO] Mass vhost: changing tld to: .local
httpd_1  | [INFO] Mass vhost: changing document root to: htdocs
httpd_1  | [INFO] Mass vhost: changing template dir to: .devilbox
httpd_1  | [INFO] Disabling PHP 5.2 compat mode
httpd_1  | [INFO] vhost-gen: no customized template found
httpd_1  | root $ sed -i'' 's/__PHP_ENABLE__/yes/g' /etc/vhost-gen/main.yml
httpd_1  | root $ sed -i'' 's/__PHP_ADDR__/172.16.238.10/g' /etc/vhost-gen/main.yml
httpd_1  | root $ sed -i'' 's/__PHP_PORT__/9000/g' /etc/vhost-gen/main.yml
httpd_1  | root $ sed -i'' 's/__PHP_TIMEOUT__/180/g' /etc/vhost-gen/main.yml
httpd_1  | root $ sed -i'' 's/__PHP_ENABLE__/yes/g' /etc/vhost-gen/mass.yml
httpd_1  | root $ sed -i'' 's/__PHP_ADDR__/172.16.238.10/g' /etc/vhost-gen/mass.yml
httpd_1  | root $ sed -i'' 's/__PHP_PORT__/9000/g' /etc/vhost-gen/mass.yml
httpd_1  | root $ sed -i'' 's/__PHP_TIMEOUT__/180/g' /etc/vhost-gen/mass.yml
httpd_1  | root $ sed -i'' 's/__DOCKER_LOGS_ERROR__/no/g' /etc/vhost-gen/main.yml
httpd_1  | root $ sed -i'' 's/__DOCKER_LOGS_ACCESS__/no/g' /etc/vhost-gen/main.yml
httpd_1  | root $ sed -i'' 's/__DOCKER_LOGS_ERROR__/no/g' /etc/vhost-gen/mass.yml
httpd_1  | root $ sed -i'' 's/__DOCKER_LOGS_ACCESS__/no/g' /etc/vhost-gen/mass.yml
httpd_1  | root $ sed -i'' 's/__HTTP2_ENABLE__/True/g' /etc/vhost-gen/main.yml
httpd_1  | root $ sed -i'' 's/__HTTP2_ENABLE__/True/g' /etc/vhost-gen/mass.yml
httpd_1  | root $ sed -i'' 's|__ENABLE_STATUS__|yes|g' /etc/vhost-gen/main.yml
httpd_1  | root $ sed -i'' 's|__STATUS_ALIAS__|/devilbox-httpd-status|g' /etc/vhost-gen/main.yml
httpd_1  | root $ vhost-gen -n localhost -p /var/www/default/htdocs -c /etc/vhost-gen/main.yml -o /var/www/default/cfg -v -d -s -m both
httpd_1  | vhost-gen: [INFO]  (2022-04-21 09:59:28): Loading configuration file        (-c): /etc/vhost-gen/main.yml
httpd_1  | vhost-gen: [INFO]  (2022-04-21 09:59:28): Loading vhost template (global)   (-t): /etc/vhost-gen/templates/apache24.yml
httpd_1  | vhost-gen: [INFO]  (2022-04-21 09:59:28): Loading vhost template (override) (-o): /var/www/default/cfg/apache24.yml
httpd_1  | vhost-gen: [WARN]  (2022-04-21 09:59:28): Override Vhost template not found: /var/www/default/cfg/apache24.yml
httpd_1  | vhost-gen: [INFO]  (2022-04-21 09:59:28): Creating vhost type: https and http (both)
httpd_1  | vhost-gen: [INFO]  (2022-04-21 09:59:28): Using vhost name: localhost
httpd_1  | vhost-gen: [INFO]  (2022-04-21 09:59:28): Log setting: dir -> True
httpd_1  | vhost-gen: [INFO]  (2022-04-21 09:59:28): Log setting: Not specified
httpd_1  | vhost-gen: [INFO]  (2022-04-21 09:59:28): Vhost config written to: /etc/httpd/conf.d/localhost.conf
httpd_1  | root $ sed -i'' 's|__DOCROOT_SUFFIX__|htdocs|g' /etc/vhost-gen/mass.yml
httpd_1  | root $ sed -i'' 's/__TLD__/.local/g' /etc/vhost-gen/mass.yml
httpd_1  | root $ mkdir -p /etc/httpd/cert/main
httpd_1  | root $ cert-gen -v -c DE -s Berlin -l Berlin -o Devilbox -u Devilbox -n 'localhost' -e 'admin@localhost' -a 'localhost *.localhost devilbox *.devilbox httpd' /ca/devilbox-ca.key /ca/devilbox-ca.crt /etc/httpd/cert/main/localhost.key /etc/httpd/cert/main/localhost.csr /etc/httpd/cert/main/localhost.crt
httpd_1  | $ openssl req -newkey rsa:2048 -sha256 -nodes -extensions v3_req -config <(echo "[req]
httpd_1  | distinguished_name = req_distinguished_name
httpd_1  | x509_extensions = v3_req
httpd_1  |
httpd_1  | [req_distinguished_name]
httpd_1  |
httpd_1  | [ v3_req ]
httpd_1  | basicConstraints = critical, CA:FALSE
httpd_1  | subjectKeyIdentifier = hash
httpd_1  | keyUsage = critical, digitalSignature, keyEncipherment
httpd_1  | authorityKeyIdentifier = keyid:always,issuer:always
httpd_1  | extendedKeyUsage = serverAuth, clientAuth
httpd_1  | subjectAltName=${ALT_NAMES}") -keyout /etc/httpd/cert/main/localhost.key -subj '/C=DE/ST=Berlin/L=Berlin/O=Devilbox/OU=Devilbox/CN=localhost/emailAddress=admin@localhost' -out /etc/httpd/cert/main/localhost.csr
httpd_1  | $ openssl x509 -req -sha256 -extensions v3_req -extfile <(echo "[req]
httpd_1  | distinguished_name = req_distinguished_name
httpd_1  | x509_extensions = v3_req
httpd_1  |
httpd_1  | [req_distinguished_name]
httpd_1  |
httpd_1  | [ v3_req ]
httpd_1  | basicConstraints = critical, CA:FALSE
httpd_1  | subjectKeyIdentifier = hash
httpd_1  | keyUsage = critical, digitalSignature, keyEncipherment
httpd_1  | authorityKeyIdentifier = keyid:always,issuer:always
httpd_1  | extendedKeyUsage = serverAuth, clientAuth
httpd_1  | subjectAltName=${ALT_NAMES}") -days 825 -in /etc/httpd/cert/main/localhost.csr -CA /ca/devilbox-ca.crt -CAkey /ca/devilbox-ca.key -CAcreateserial -out /etc/httpd/cert/main/localhost.crt
httpd_1  | Certificate:
httpd_1  |     Data:
httpd_1  |         Version: 3 (0x2)
httpd_1  |         Serial Number:
httpd_1  |             52:ac:15:22:ec:20:f1:53:e8:32:08:91:b2:11:0c:d1:a1:36:10:0d
httpd_1  |         Signature Algorithm: sha256WithRSAEncryption
httpd_1  |         Issuer: C = DE, ST = Berlin, L = Berlin, O = Devilbox, OU = Devilbox, CN = Devilbox Root CA, emailAddress = cytopia@devilbox.org, dnQualifier = aYnUy/y58HHPern9yNQWrwexHiA=
httpd_1  |         Validity
httpd_1  |             Not Before: Apr 21 14:59:28 2022 GMT
httpd_1  |             Not After : Jul 24 14:59:28 2024 GMT
httpd_1  |         Subject: C = DE, ST = Berlin, L = Berlin, O = Devilbox, OU = Devilbox, CN = localhost, emailAddress = admin@localhost
httpd_1  |         Subject Public Key Info:
httpd_1  |             Public Key Algorithm: rsaEncryption
httpd_1  |                 RSA Public-Key: (2048 bit)
httpd_1  |                 Modulus:
httpd_1  |                     00:de:e0:ba:d6:d7:bb:76:98:08:5d:a1:4a:bd:b0:
httpd_1  |                     51:61:08:91:27:e4:72:21:f9:b2:6c:4c:9c:ca:dc:
httpd_1  |                     05:ce:0a:cb:cc:4b:8c:9a:ae:a8:a0:8c:68:77:f9:
httpd_1  |                     e4:1a:38:9e:40:59:31:4b:70:94:45:56:46:37:fb:
httpd_1  |                     cd:fe:f1:8c:00:9b:0b:c3:c0:f0:c5:c8:b6:d4:78:
httpd_1  |                     f5:fa:32:b4:82:d1:7e:1f:7e:1e:f6:58:58:87:ef:
httpd_1  |                     39:b2:45:74:17:bd:ce:af:55:f0:58:f9:19:9c:b0:
httpd_1  |                     47:bf:f3:58:5a:da:c3:f4:8d:9d:ef:e4:25:ce:5c:
httpd_1  |                     0a:82:5d:81:aa:16:df:ec:72:1c:ab:fb:1a:00:90:
httpd_1  |                     02:d2:f5:c5:75:d4:48:82:78:af:be:1e:61:b5:36:
httpd_1  |                     8d:51:d1:af:fe:60:e7:99:b3:c5:82:e5:14:5d:af:
httpd_1  |                     dd:99:e5:f0:1b:bc:bb:63:86:fa:a6:de:c4:19:9a:
httpd_1  |                     e3:d2:48:80:19:4c:c5:eb:ec:b1:13:4b:ba:98:99:
httpd_1  |                     9e:bb:e2:58:8c:12:8f:62:3f:90:92:e2:06:74:fe:
httpd_1  |                     1a:0b:0b:fd:79:99:40:cd:36:02:60:1b:9d:90:c8:
httpd_1  |                     9b:1f:23:ba:34:af:18:ae:76:f0:e7:b3:e0:72:6d:
httpd_1  |                     2c:11:2b:b7:c7:03:4f:99:54:4e:bd:7f:ef:e4:ec:
httpd_1  |                     3e:09
httpd_1  |                 Exponent: 65537 (0x10001)
httpd_1  |         X509v3 extensions:
httpd_1  |             X509v3 Basic Constraints: critical
httpd_1  |                 CA:FALSE
httpd_1  |             X509v3 Subject Key Identifier:
httpd_1  |                 64:5A:E1:A5:6D:FC:D2:D6:38:2D:68:9B:86:4E:87:F2:81:21:59:EC
httpd_1  |             X509v3 Key Usage: critical
httpd_1  |                 Digital Signature, Key Encipherment
httpd_1  |             X509v3 Authority Key Identifier:
httpd_1  |                 keyid:69:89:D4:CB:FC:B9:F0:71:CF:7A:B9:FD:C8:D4:16:AF:07:B1:1E:20
httpd_1  |                 DirName:/C=DE/ST=Berlin/L=Berlin/O=Devilbox/OU=Devilbox/CN=Devilbox Root CA/emailAddress=cytopia@devilbox.org/dnQualifier=aYnUy/y58HHPern9yNQWrwexHiA=
httpd_1  |                 serial:0F:7A:E6:B6:63:5E:23:98:08:E3:14:4C:A2:A0:E6:E4:B7:0E:4C:55
httpd_1  |
httpd_1  |             X509v3 Extended Key Usage:
httpd_1  |                 TLS Web Server Authentication, TLS Web Client Authentication
httpd_1  |             X509v3 Subject Alternative Name:
httpd_1  |                 DNS:localhost, DNS:localhost, DNS:*.localhost, DNS:devilbox, DNS:*.devilbox, DNS:httpd
httpd_1  |     Signature Algorithm: sha256WithRSAEncryption
httpd_1  |          36:3a:72:e5:9d:7e:ab:76:50:94:d8:b9:ff:47:5d:0e:23:03:
httpd_1  |          5c:6a:c2:0c:0e:90:86:b6:5d:89:cc:9b:ec:e3:e2:4b:0e:18:
httpd_1  |          f6:c2:7f:8f:75:a3:ab:a9:93:20:13:ca:1b:e6:6d:c9:9e:c5:
httpd_1  |          5d:e4:ad:da:0f:8c:9f:d4:c6:40:ec:a0:fe:60:dd:af:6f:de:
httpd_1  |          cb:01:be:32:47:55:79:45:91:fb:df:3e:c8:3d:81:81:47:7c:
httpd_1  |          9e:72:6d:a6:56:b8:c3:38:9f:75:ad:02:26:13:1e:a0:68:e5:
httpd_1  |          fd:7c:ed:2e:01:e0:6b:8b:af:7a:d3:18:d1:64:13:48:79:7f:
httpd_1  |          83:d6:ba:77:cc:b3:3d:0e:f1:3d:c8:bc:15:dc:2b:61:61:fe:
httpd_1  |          09:a1:be:56:86:c6:ed:4f:2c:2b:2e:87:9c:e0:b5:7c:ed:7c:
httpd_1  |          0d:90:f2:b1:dc:81:8b:ba:64:b5:76:95:14:f3:22:50:65:ff:
httpd_1  |          a4:59:a6:13:da:13:f1:de:5e:c9:fa:1d:d9:d1:b3:47:d1:3f:
httpd_1  |          fa:d6:3a:14:5b:e2:e1:e7:a1:cd:ef:81:7d:bf:81:65:5e:ef:
httpd_1  |          a7:d7:36:3f:88:24:8b:68:0c:14:1e:f9:a3:31:71:18:cb:3f:
httpd_1  |          9f:20:29:2e:7c:66:80:4d:29:4c:e9:cd:22:0e:82:9e:7e:b4:
httpd_1  |          37:52:0e:f1
httpd_1  | /etc/httpd/cert/main/localhost.crt: OK
httpd_1  | root $ chown -R 267164627:701479588 /ca
httpd_1  | [INFO] Starting supervisord: 4.2.2
httpd_1  | 2022-04-21 09:59:29,846 INFO Set uid to user 0 succeeded
httpd_1  | 2022-04-21 09:59:29,850 INFO supervisord started with pid 1
httpd_1  | 2022-04-21 09:59:30,853 INFO spawned: 'httpd' with pid 171
httpd_1  | 2022-04-21 09:59:30,856 INFO spawned: 'watcherd' with pid 172
httpd_1  | [Thu Apr 21 09:59:30.922800 2022] [mpm_event:notice] [pid 171:tid 139858846649160] AH00489: Apache/2.4.53 (Unix) OpenSSL/1.1.1n configured -- resuming normal operations
httpd_1  | [Thu Apr 21 09:59:30.924034 2022] [core:notice] [pid 171:tid 139858846649160] AH00094: Command line: 'httpd -D FOREGROUND'
httpd_1  | 2022-04-21 09:59:31,926 INFO success: httpd entered RUNNING state, process has stayed up for > than 1 seconds (startsecs)
httpd_1  | 2022-04-21 09:59:31,926 INFO success: watcherd entered RUNNING state, process has stayed up for > than 1 seconds (startsecs)
php_1    | [INFO] Debug level: 2
php_1    | [INFO] Changing user 'devilbox' uid to: 267164627
php_1    | root $ usermod -u 267164627 devilbox 2>/dev/null
php_1    | root $ chown -R devilbox /home/devilbox 2>/dev/null || true
php_1    | root $ chown -R devilbox /var/lib/php/session
php_1    | root $ chown -R devilbox /var/lib/php/wsdlcache
php_1    | root $ chown -R devilbox /var/spool/mail/devilbox
php_1    | root $ chown -R devilbox /etc/supervisor/custom.d
php_1    | [INFO] Changing group 'devilbox' gid to: 701479588
php_1    | root $ groupmod -g 701479588 devilbox 2>/dev/null
php_1    | root $ chown -R :devilbox /home/devilbox 2>/dev/null || true
php_1    | root $ chown -R :devilbox /var/lib/php/session
php_1    | root $ chown -R :devilbox /var/lib/php/wsdlcache
php_1    | root $ chown -R :devilbox /var/spool/mail/devilbox
php_1    | root $ chown -R :devilbox /etc/supervisor/custom.d
php_1    | [INFO] Setting container timezone to: EST
php_1    | root $ ln -sf /usr/share/zoneinfo/EST /etc/localtime
php_1    | [INFO] Setting PHP: timezone=EST
php_1    | root $ echo 'date.timezone = EST' > /usr/local/etc/php/conf.d/devilbox-runtime-timezone.ini
php_1    | [INFO] Docker date set to: Thu Apr 21 09:59:27 EST 2022
php_1    | [INFO] $DOCKER_LOGS set to 0. Logging to files under: /var/log/php
php_1    | [INFO] Make sure to mount this directory in order to view logs
php_1    | root $ chown -R devilbox:devilbox /var/log/php
php_1    | root $ chmod 0755 /var/log/php
php_1    | [INFO] $ENABLE_MAIL set to 2. Enabling postfix catch-all
php_1    | root $ chown devilbox:devilbox /var/log/php
php_1    | root $ chown devilbox:devilbox /var/log/php/mail.log
php_1    | root $ chmod 0644 /var/log/php/mail.log
php_1    | root $ chmod 0644 /var/mail/devilbox
php_1    | root $ chown devilbox:devilbox /var/mail
php_1    | root $ chown devilbox:devilbox /var/mail/devilbox
php_1    | root $ postconf -e 'strict_mailbox_ownership=no'
php_1    | root $ postconf -e 'inet_protocols=ipv4'
php_1    | root $ postconf -e 'myhostname=localhost'
php_1    | root $ postconf -e 'virtual_alias_maps=pcre:/etc/postfix/virtual'
php_1    | root $ echo '/.*@.*/ devilbox' >> /etc/postfix/virtual
php_1    | root $ newaliases
php_1    | [INFO] Forwarding httpd:80 to 127.0.0.1:80 inside this docker.
php_1    | [INFO] Forwarding httpd:443 to 127.0.0.1:443 inside this docker.
php_1    | [INFO] Forwarding mysql:3306 to 127.0.0.1:3306 inside this docker.
php_1    | [INFO] Forwarding pgsql:5432 to 127.0.0.1:5432 inside this docker.
php_1    | [INFO] Forwarding redis:6379 to 127.0.0.1:6379 inside this docker.
php_1    | [INFO] Forwarding memcd:11211 to 127.0.0.1:11211 inside this docker.
php_1    | [INFO] Forwarding mongo:27017 to 127.0.0.1:27017 inside this docker.
php_1    | [INFO] Enabling 'socat-80-httpd-80' to be started by supervisord
php_1    | [INFO] Enabling 'socat-443-httpd-443' to be started by supervisord
php_1    | [INFO] Enabling 'socat-3306-mysql-3306' to be started by supervisord
php_1    | [INFO] Enabling 'socat-5432-pgsql-5432' to be started by supervisord
php_1    | [INFO] Enabling 'socat-6379-redis-6379' to be started by supervisord
php_1    | [INFO] Enabling 'socat-11211-memcd-11211' to be started by supervisord
php_1    | [INFO] Enabling 'socat-27017-mongo-27017' to be started by supervisord
php_1    | [INFO] Enabling 'rsyslogd' to be started by supervisord
php_1    | [INFO] Enabling 'postfix' to be started by supervisord
php_1    | [INFO] Enabling 'php-fpm' to be started by supervisord
php_1    | root $ find /usr/local/etc/php/conf.d -type f -iname '*.ini' -exec chmod 0644 "{}" \;
php_1    | root $ find /usr/local/etc/php-fpm.d -type f -iname '*.conf' -exec chmod 0644 "{}" \;
php_1    | [INFO] Enabling the following PHP modules: imagick
php_1    | root $ docker-php-ext-enable imagick || true
php_1    |
php_1    | warning: imagick (imagick) is already loaded!
php_1    |
php_1    | [INFO] Disabling the following PHP modules: oci8,PDO_OCI,pdo_sqlsrv,sqlsrv,rdkafka,swoole
php_1    | root $ rm /usr/local/etc/php/conf.d/docker-php-ext-oci8.ini
php_1    | root $ rm /usr/local/etc/php/conf.d/docker-php-ext-pdo_sqlsrv.ini
php_1    | root $ rm /usr/local/etc/php/conf.d/docker-php-ext-sqlsrv.ini
php_1    | root $ rm /usr/local/etc/php/conf.d/docker-php-ext-rdkafka.ini
php_1    | root $ rm /usr/local/etc/php/conf.d/docker-php-ext-swoole.ini
php_1    | root $ chown devilbox:devilbox /etc/mysqldump-secure.conf
php_1    | root $ chown devilbox:devilbox /etc/mysqldump-secure.cnf
php_1    | root $ chown devilbox:devilbox /var/log/mysqldump-secure.log
php_1    | root $ chown devilbox:devilbox /shared/backups/mysql
php_1    | [INFO] $MYSQL_BACKUP_USER set for mysqldump-secure. Changing to 'root'
php_1    | root $ sed -i'' 's/^user.*/user = root/g' /etc/mysqldump-secure.cnf
php_1    | [INFO] $MYSQL_BACKUP_PASS set for mysqldump-secure. Changing to '******'
php_1    | root $ perl -pi -e 's/^password.*/password = /g' /etc/mysqldump-secure.cnf
php_1    | [INFO] $MYSQL_BACKUP_HOST set for mysqldump-secure. Changing to 'mysql'
php_1    | root $ sed -i'' 's/^host.*/host = mysql/g' /etc/mysqldump-secure.cnf
php_1    | root $ chown devilbox:devilbox /shared/backups
php_1    | root $ chown devilbox:devilbox /shared/httpd
php_1    | root $ chmod 0755 /shared/backups
php_1    | root $ chmod 0755 /shared/httpd
php_1    | root $ cp /ca/devilbox-ca.crt /usr/local/share/ca-certificates/devilbox-devilbox-ca.crt
php_1    | root $ update-ca-certificates
php_1    | Updating certificates in /etc/ssl/certs...
php_1    | 1 added, 0 removed; done.
php_1    | Running hooks in /etc/ca-certificates/update.d...
php_1    | done.
php_1    | [INFO] Starting supervisord
php_1    | 2022-04-21 09:59:31,603 WARN No file matches via include "/etc/supervisor/custom.d/*.conf"
php_1    | 2022-04-21 09:59:31,603 INFO Included extra file "/etc/supervisor/conf.d/php-fpm.conf" during parsing
php_1    | 2022-04-21 09:59:31,603 INFO Included extra file "/etc/supervisor/conf.d/postfix.conf" during parsing
php_1    | 2022-04-21 09:59:31,604 INFO Included extra file "/etc/supervisor/conf.d/rsyslogd.conf" during parsing
php_1    | 2022-04-21 09:59:31,604 INFO Included extra file "/etc/supervisor/conf.d/socat-11211-memcd-11211.conf" during parsing
php_1    | 2022-04-21 09:59:31,604 INFO Included extra file "/etc/supervisor/conf.d/socat-27017-mongo-27017.conf" during parsing
php_1    | 2022-04-21 09:59:31,604 INFO Included extra file "/etc/supervisor/conf.d/socat-3306-mysql-3306.conf" during parsing
php_1    | 2022-04-21 09:59:31,605 INFO Included extra file "/etc/supervisor/conf.d/socat-443-httpd-443.conf" during parsing
php_1    | 2022-04-21 09:59:31,605 INFO Included extra file "/etc/supervisor/conf.d/socat-5432-pgsql-5432.conf" during parsing
php_1    | 2022-04-21 09:59:31,605 INFO Included extra file "/etc/supervisor/conf.d/socat-6379-redis-6379.conf" during parsing
php_1    | 2022-04-21 09:59:31,605 INFO Included extra file "/etc/supervisor/conf.d/socat-80-httpd-80.conf" during parsing
php_1    | 2022-04-21 09:59:31,606 INFO Set uid to user 0 succeeded
php_1    | 2022-04-21 09:59:31,608 INFO supervisord started with pid 1

(Optional) Additional information

I am on a Mac Version 12.3.1 with an Intel chip.

cytopia commented 2 years ago

Can you resolve foobar.local from inside the PHP container?

jakeparis commented 2 years ago

I sure can!

devilbox@php-8.1.5 in /shared/httpd $ ping foobar.local
PING foobar.local (127.0.0.1) 56(84) bytes of data.
64 bytes from localhost (127.0.0.1): icmp_seq=1 ttl=64 time=0.045 ms
64 bytes from localhost (127.0.0.1): icmp_seq=2 ttl=64 time=0.230 ms
cytopia commented 2 years ago

Hmm, that means that the DNS server is functioning correctly. Can you check your system's DNS settings to see if you're actually using the the DNS server from 127.0.0.1 on your host system.

jakeparis commented 2 years ago

This what I get from a nslookup on the host machine:

jparis in ~ $ nslookup foobar.local
Server:     127.0.0.1
Address:    127.0.0.1#53

Non-authoritative answer:
Name:   foobar.local
Address: 127.0.0.1

jparis in ~ $ nslookup duckduckgo.com
Server:     127.0.0.1
Address:    127.0.0.1#53

Non-authoritative answer:
Name:   duckduckgo.com
Address: 52.149.246.39
cytopia commented 2 years ago

Are you able to successfully ping it from your host system?

jakeparis commented 2 years ago

This seems to have something to do with using the .local TLD. When I used dig I got the following. Note the WARNING.

jparis in ~ $ dig foobar.local

; <<>> DiG 9.10.6 <<>> foobar.local
;; global options: +cmd
;; Got answer:
;; WARNING: .local is reserved for Multicast DNS
;; You are currently testing what happens when an mDNS query is leaked to DNS
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 51840
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 2

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 1232
;; QUESTION SECTION:
;foobar.local.          IN  A

;; ANSWER SECTION:
foobar.local.       5   IN  A   127.0.0.1

;; ADDITIONAL SECTION:
rpz.            1   IN  SOA bind. admin.bind. 1650553800 1200 180 1209600 10800

;; Query time: 3 msec
;; SERVER: 127.0.0.1#53(127.0.0.1)
;; WHEN: Fri Apr 22 08:51:51 EDT 2022
;; MSG SIZE  rcvd: 106

So I changed the TLD to foo and it works perfectly. I know that using .local should be an accepted practice, as that's what I've always used, and it's even in the .env comments as a suggestion. Does this perhaps have something to do with a recent Mac OSX update, I wonder.

jakeparis commented 2 years ago

Are you able to successfully ping it from your host system?

No, it doesn't ever return.

cytopia commented 2 years ago

Are you able to successfully ping it from your host system?

No, it doesn't ever return.

That could be a Mac thing then. Unfortunately I don't have one at hand to further debug this. If .local does not seem to work, then I will have to update the docs accordingly.

cytopia commented 2 years ago

local seems indeed to be reserved for multicast DNS. After a quick google search I found a few other issues with Ubuntu and Fedora regarding the same.

Wiki makes it clear: https://en.wikipedia.org/wiki/Multicast_DNS

So local should then be avoided.

jakeparis commented 2 years ago

Now that I see what to look up, there's a lot of helpful information for people like me, who know nothing about DNS. https://serverfault.com/a/399958 for example and https://discussions.apple.com/thread/6555023

So @cytopia thank you for all of your assistance as usual. At this point, I'm not sure if this is something that needs to be "fixed" in the project or the docs, or if I should simply stop using .local and that's the end of it.

jakeparis commented 2 years ago

Want me to do a PR updating some docs and things?

cytopia commented 2 years ago

I'd say we keep this issue open, until I've adjusted the docs and comments in .env. Feel free to submit anything if you'd like

cytopia commented 2 years ago

@jakeparis thanks for the PR! :+1: