通过docker compose

我是docker的新手,我试图通过docker-compose将现有的MySQL容器连接到我的Laravel应用程序。

MySQL docker-compose.yml文件类似于

version: '3'

services:
  web:
    container_name: ${APP_NAME}_web
    build:
     context: ./docker/web
    ports:
      - "9000:80"
    volumes:
      - ./:/var/www/app
    depends_on:
      - db
  db:
    container_name: ${APP_NAME}_db
    image: mysql:5.7
    ports:
      - "3307:3306"
    restart: always
    volumes: 
      - dbdata:/var/lib/mysql/
    environment:
      - MYSQL_ROOT_PASSWORD=root
      - MYSQL_DATABASE=laravel_docker_db
volumes:
  dbdata:
    driver: local
    driver_opts:
       type: none
       device: /storage/docker/laravel_mysql_data
       o: bind

此脚本正在下载最新的mysql版本并创建一个新容器。我只想将MYSQL容器与应用程序连接

使用桥接网络在docker-machine上使用特定IP创建我现有的MYSQL容器的地方。

通过docker compose

我想知道,我可以在 db上下文上定义现有的MYSQL容器配置吗?

colisa49 回答:通过docker compose

尝试此docker-compose文件:

version: '3.5'
services:
  db:
    container_name: myapp_db
    image: mysql:5.7
    ports:
      - "3307:3306"
    restart: always
    volumes:
      - dbdata:/var/lib/mysql/
    environment:
      - MYSQL_ROOT_PASSWORD=root
      - MYSQL_DATABASE=laravel_docker_db
    networks:
      - myapp-network

networks:
  myapp-network:
    driver: bridge

情况有两种情况: 1.如果您的laravel实例也在docker中-只需将.env文件的下一行添加:

DB_HOST=myapp_db
DB_PORT=3306
DB_DATABASE=laravel_docker_db
DB_USERNAME=root
DB_PASSWORD=root

2。如果您不将docker用于laravel,则只需更改变量DB_HOST=localhost

,

在.env文件中:

DB_HOST=db
DB_PORT=3306
DB_DATABASE=your database name
DB_USERNAME=root
DB_PASSWORD=root
本文链接:https://www.f2er.com/3161495.html

大家都在问