Hi,
Via docker a containers on Ubuntu server, I’m using Dreamfacory for the Rest interfaces to access a Postgres database. The database is also running in a docker container. The server’s local IP address is 192.168.1.100
I’m using a subdomain from No-IP to access the application via the web.
Via the web:
The link to the home page is http://slimzulu.hopto.org:8080
The link to the application is http://slimzulu.hopto.org:8080/starsbib
The link to the application hangs because the application can’t access the database via the Rest interface although the application, database and Rest server are running on the same server in docker containers.
On the Local network:
The link to the home page is 192.168.1.100:8080
The link to the application is 192.168.1.100:8080/starsbib
Via the local network the web application has no problems to access the database.
In Dreamfactory, my Service configuration that matters (because I can connect via the local network):
Host: 192.168.1.100
In Dreamfactory, my CORS configuration:
CORS entry, Origins, Headers set to *
Methods selected: Get
Supports credentials and Enabled checked.
Using Api Docs of Dreamfactory, a typical Rest interface:
http://192.168.1.100/api/v2/starsdb/_proc/json_lookups(media)
My docker-compose.yml file
version: ‘2’
services:
mariadb:
restart: unless-stopped
container_name: mariadb
image: bitnami/mariadb:latest
volumes:
- ./mariadb_data:/bitnami/mariadb
environment:
- ALLOW_EMPTY_PASSWORD=yes
networks:
- dreamfactory-tier
mongodb:
restart: unless-stopped
container_name: mongodb
image: ‘bitnami/mongodb:latest’
volumes:
- ./mongodb_data:/bitnami/mongodb
networks:
- dreamfactory-tier
redis:
restart: unless-stopped
container_name: redis
image: ‘bitnami/redis:latest’
environment:
- ALLOW_EMPTY_PASSWORD=yes
volumes:
- ./redis_data:/bitnami/redis
networks:
- dreamfactory-tier
dreamfactory:
restart: unless-stopped
container_name: dreamfactory
image: bitnami/dreamfactory:latest
environment:
- SMTP_HOST=smtp.gmail.com
- SMTP_PORT=587
- SMTP_USER=acme@gmail.com
- SMTP_PASSWORD=xxxxxxxxxxxxxxxxxxx
- SMTP_PROTOCOL=tls
- DREAMFACTORY_DATABASE_TYPE=mariadb
- DREAMFACTORY_ENABLE_MARIADB_DATABASE=yes
ports:
- 80:80
- 443:443
volumes:
- ./dreamfactory_data:/bitnami
networks:
- dreamfactory-tier
depends_on:
- mariadb
- mongodb
- redis
apache:
restart: unless-stopped
container_name: apache
image: bitnami/apache:latest
environment:
- APACHE_HTTP_PORT_NUMBER=8080
- APACHE_HTTPS_PORT_NUMBER=8443
ports:
- 8080:8080
- 8443:8443
volumes:
- ./apache_data:/app
- ./apache-certs:/certs
- .my_vhost.conf:/vhosts/my_vhost.conf:ro
postgres:
restart: unless-stopped
container_name: postgres
image: bitnami/postgresql:latest
environment:
- TZ=“Africa/Johannesburg”
- POSTGRES_DB=starsdb
- POSTGRES_USER=postgres
- POSTGRES_PASSWORD=xxxxxxxxxxxxxxxxx
volumes:
- ./postgres_data:/bitnami/postgresql
- ./postgres_data/conf:/bitnami/postgresql/conf/
ports:
- 5432:5432
- 5433:5433
networks:
- dreamfactory-tier
- app-tier
networks:
dreamfactory-tier:
driver: bridge
app-tier:
driver: bridge
volumes:
mariadb_data:
driver: local
mongodb_data:
driver: local
redis_data:
driver: local
dreamfactory_data:
driver: local
postgres_data:
driver: local
I’m using TMS Web Core components in the Delphi compiler to create the web application.
What I accidentally noticed: I disabled my phone’s Wi-Fi (to bypass the local network) and tried to access the web application via the domain. While the application was hanging while trying to access the database via the Rest interface, I enabled the phone’s Wi-Fi connection and then the application does access the database.
Can anyone propose a solution to put this ghost back in the bottle.
Regards,
Nols Smit