繁体   English   中英

如何在 docker-compose 中添加 phpMyAdmin

[英]How can I add phpMyAdmin in docker-compose

大家好,我有这个 docker-compose 文件

version: '3'

networks:
  laravel:

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

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

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

  composer:
    build:
      context: .
      dockerfile: composer.dockerfile
    container_name: composer
    volumes:
      - ./src:/var/www/html
    working_dir: /var/www/html
    depends_on:
      - php
    user: laravel
    networks:
      - laravel
    entrypoint: ['composer', '--ignore-platform-reqs']

  npm:
    image: node:13.7
    container_name: npm
    volumes:
      - ./src:/var/www/html
    working_dir: /var/www/html
    entrypoint: ['npm']

  artisan:
    build:
      context: .
      dockerfile: php.dockerfile
    container_name: artisan
    volumes:
      - ./src:/var/www/html:delegated
    depends_on:
      - mysql
    working_dir: /var/www/html
    user: laravel
    entrypoint: ['php', '/var/www/html/artisan']
    networks:
      - laravel

我想添加 phpMyAdmin 以拥有我的数据库的图形界面,我尝试了这个,但它不起作用。

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

 phpmyadmin:
    image: phpmyadmin/phpmyadmin
    container_name: phpmyadmin
    environment:
      MYSQL_ROOT_PASSWORD: secret
      PMA_HOST: mysql
      PMA_PORT: 3306
    restart: always
    ports:
    - "8081:80"
    networks:
      - laravel

我认为这是可能的,但我认为我的做法是错误的。 我知道我们需要在 mysql 服务和 phpmyadmin 之间建立连接,但我不知道该怎么做。

我能帮我吗

版本:“3”服务:

nginx:
    container_name: nginx
    image: nginx:1.17
    restart: always
    ports:
        - "9998:80"
    volumes:
        - ../:/var/www
        - ./nginx/default.conf:/etc/nginx/conf.d/default.conf
    links:
        - php
php:
    container_name: php
    build:
        context: .
        dockerfile: Dockerfile
    restart: always
    volumes:
        - ../:/var/www
        - ~:/home
        - ./php-config/php.ini:/usr/local/etc/php/php.ini

应用程序:构建:上下文:。 dockerfile:Dockerfile 图像:hakase-labs/laravel 容器名称:应用程序重启:除非停止 tty:真实环境:SERVICE_NAME:应用程序 SERVICE_TAGS:开发工作目录:/var/www/html 卷:-./:/var/www/html 网络: - 我的网

composer:
    container_name: composer
    image: composer:1.9.0
    command: tail -f /dev/null
    volumes:
        - ../:/var/www

mysql:
    container_name: mysql
    image: mysql:5.7
    command: mysqld --max-allowed-packet=64M --character-set-server=utf8 --collation-server=utf8_unicode_ci --init-connect='SET NAMES UTF8;' --innodb-flush-log-at-trx-commit=0
    volumes:
        # Mount mysl data directory to keep it perisstent on host system.
        # Use this only in development environment
        # Mysql cannot write to data folder as it is owned by user on host.
        # So chown 999:999 data folder when it is first created
        # Todo: For some reason we are not able to mount log directory from host to mysql container. We need to fix this in future so that we can better manage mysql logs from host machine - Harsha
        #- ~/storage/mysql/log:/var/log/mysql
        - ~/storage/mysql/data:/var/lib/mysql

    environment:
        - "MYSQL_ROOT_PASSWORD=pasword"
        - "MYSQL_DATABASE=name"
        - "MYSQL_USER=name"
        - "MYSQL_PASSWORD=password"
    ports:
        - "3306:3306"

phpmyadmin:
    container_name: phpmyadmin
    image: phpmyadmin/phpmyadmin
    restart: always
    environment:
        - PMA_HOST=mysql
        - PMA_PORT=3306
    ports:
        - 8001:80
    volumes:
        - /sessions

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM