John Davidson

php - Connect docker-compose to remote database in Laravel/Ubuntu

0 comments
Message:


I am working on a laravel project where I successfully configured the docker-compose with laravel using built in images (nginx, mysql, php etc).
The containers are working fine even the data persistence is working correct. But now i want to connect the docker-compose to remote database rather then using the sql container database.
It can the the localhost database that is on my local system may be in xampp or it can be an AWS remote database. In simple words the docker should pick the database outside of container.
I have tried different solution using the IP address and make changes to .env and docker-compose.yml but i didn't find any solution.


Here is my default configurations for docker-compose.yml :


version: '3'

networks:
laravel:

services:
site:
build:
context: .
dockerfile: nginx.dockerfile
container_name: nginx
ports:
- 81:80
volumes:
- ./src:/var/www/html:delegated
depends_on:
- php
- mysql
- phpmyadmin
networks:
- laravel

mysql:
image: mysql:5.7.29
container_name: mysql
restart: unless-stopped
tty: true
ports:
- 3307:3306
environment:
MYSQL_DATABASE: test_db
MYSQL_USER: root
MYSQL_PASSWORD: secret
MYSQL_ROOT_PASSWORD: secret
SERVICE_TAGS: dev
SERVICE_NAME: mysql
networks:
- laravel
volumes:
- ./mysql:/var/lib/mysql

phpmyadmin:
image: phpmyadmin/phpmyadmin
restart: always
container_name: phpmyadmin
depends_on:
- mysql
ports:
- "8081:80"
environment:
PMA_HOST: mysql
MYSQL_ROOT_PASSWORD: secret
UPLOAD_LIMIT: 1G
networks:
- laravel

php:
build:
context: .
dockerfile: php.dockerfile
container_name: php
volumes:
- ./src:/var/www/html:delegated
networks:
- laravel

volumes:
mysql:

And this is how my .env looks like:


DB_CONNECTION=mysql
DB_HOST=mysql
DB_PORT=3306
DB_DATABASE=test_db
DB_USERNAME=root
DB_PASSWORD=secret

As mentioned above it is working fine but i am confused about how to integrate/configure my local database or remote database like AWS with docker-compose in laravel. I don't want to push my data with the sql image.
I would appreciate if someone might help me in this regard about what changes are required and where to implement them.


Thanks



My Answer:
8080:80_ environment:_ PMA_HOST: mysql_ MYSQL_ROOT_PASSWORD: secret_ networks:_ - laravel_ php:_ build:_ context: ._ dockerfile: php.dockerfile_ container_name: php_ volumes:_ - ./src:/var/www/html:delegated_ networks:_ - laravel__And here is my .env file configuration:_DB_CONNECTION=mysql_DB_HOST=mysql_DB_PORT=3306_DB_DATABASE=test_db_DB_USERNAME=root_DB_PASSWORD=secret__I want to connect this laravel project to a remote database. How can I achieve this?

Rate this post

5 of 5 based on 7088 votes

Comments




© 2024 Hayatsk.info - Personal Blogs Platform. All Rights Reserved.
Create blog  |  Privacy Policy  |  Terms & Conditions  |  Contact Us