соединение laravel с контейнером mysql на докере - PullRequest
2 голосов
/ 31 марта 2019

В Docker У меня уже есть контейнер Laravel и контейнер MySQL, как подключить контейнер MySQL и контейнер Laravel в Docker?

enter image description here

Ответы [ 2 ]

0 голосов
/ 31 марта 2019

По сути, все контейнеры должны работать в одной сети.

# create your network
$ docker network create laravel

# start your container and link it to your network
$ docker run -d --network="laravel" --name="mysql01" mysql:8.0

# after your mysql is up and running, connect your second and third container like this
$ docker run -d --network="laravel" --name="latihananakit_web" yourimage:yourtag
$ docker run -d --network="laravel" --name="latihananakit_app" yourimage:yourtag

Я бы порекомендовал использовать docker-compose для этого сценария, потому что он делает все docker run - намного проще.

Смотрите здесь для справки:
https://docs.docker.com/compose/
https://github.com/bitnami/bitnami-docker-laravel/blob/master/docker-compose.yml

TL; DR:
Создайте свой docker-compose.yml следующим образом (вы можете изменять переменные окружения или другую конфигурацию по мере необходимости):

version: '2'

services:
  mariadb:
    image: 'bitnami/mariadb:latest'
    environment:
      - ALLOW_EMPTY_PASSWORD=yes
      - MARIADB_USER=my_user
      - MARIADB_DATABASE=my_database
      - MARIADB_PASSWORD=my_password

  myapp:
    tty: true
    image: bitnami/laravel:5-debian-9
    environment:
      - DB_HOST=mariadb
      - DB_USERNAME=my_user
      - DB_DATABASE=my_database
      - DB_PASSWORD=my_password
    depends_on:
      - mariadb
    ports:
      - 3000:3000
    volumes:
      - ./:/app

И запустите все, выполнив docker-compose up -d в том же каталоге.

0 голосов
/ 31 марта 2019

Это то, для чего был создан docker-compose!

Ознакомьтесь с этим уроком: https://docs.docker.com/compose/wordpress/

Он пытается сделать что-то похожее: подключить WordPress к MySQL. Ключевым моментом является то, что оба docker-контейнера, определенные в docker-compose.yml, совместно используют одну и ту же сеть - и вы можете ссылаться на каждый контейнер, используя их логическое имя. Посмотрите, как переменная окружения WORDPRESS_DB_HOST установлена ​​на db:3306 - это разрешит IP-адрес контейнера mysql в докерной сети.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...