MARIADB_ROOT_PASSWORD是否被使用docker-compose的docker mariadb忽略?

v6ylcynt  于 10个月前  发布在  Docker
关注(0)|答案(1)|浏览(86)

这是我的docker-compose.yml文件:

version: '3'

services:
  with-docker-multi-env-staging:
    build:
      context: ../../
      dockerfile: docker/staging/Dockerfile
    image: with-docker-multi-env-staging
    ports:
      - '3002:3000'
  db:
    image: mariadb
    restart: always
    environment:
      MARIADB_ROOT_PASSWORD: dashboard
      MARIADB_DATABASE: dashboard
      MARIADB_USER: dashboard
      MARIADB_PASSWORD: dashboard
    ports:
      - "3306:3306"

字符串
但是当我登录maria db终端时,我只能使用root:example进行身份验证,而不能使用root:dashboard。(example是我想要替换的默认值)
x1c 0d1x的数据



事实上,使用“dashboard:dashboard”进行身份验证根本不起作用,这就是我最初发现的原因。我做错了什么?这是我第一天使用Docker,我已经很沮丧了。;D

g6baxovj

g6baxovj1#

解决了by attaching a volume问题。更新&工作docker-compose.yml在这里:

version: '3'

services:
  with-docker-multi-env-staging:
    build:
      context: ../../
      dockerfile: docker/staging/Dockerfile
    image: with-docker-multi-env-staging
    ports:
      - '3002:3000'
    depends_on:
      - db
  db:
    image: mariadb
    restart: always
    environment:
      MYSQL_ROOT_PASSWORD: dashboard
      MYSQL_DATABASE: dashboard
      MYSQL_USER: dashboard
      MYSQL_PASSWORD: dashboard
    ports:
      - "3306:3306"
    volumes:
      - db-data:/var/lib/mysql
volumes:
  db-data:

字符串

编辑:改进版基于以下danblack的评论。

  • 改进:*
  • 使用MARIADB_代替MYSQL_
  • 添加了运行状况检查
  • 为数据库迁移添加了一个额外的层(绝对疯狂哟)
version: '3'

services:
  next-staging:
    build:
      context: ../../
      dockerfile: docker/staging/Dockerfile
    image: next-staging
    ports:
      - '3002:3000'
    depends_on:
      db:
        condition: service_healthy
      migrate-db:
        condition: service_completed_successfully
  migrate-db:
    build:
      context: ../../
      dockerfile: docker/staging/migrate.Dockerfile
    image: migrate-db
    depends_on:
      db:
        condition: service_healthy
  db:
    image: mariadb:latest
    restart: always
    environment:
      MARIADB_ROOT_PASSWORD: dashboard
      MARIADB_DATABASE: dashboard
      MARIADB_USER: dashboard
      MARIADB_PASSWORD: dashboard
    healthcheck:
      test: ["CMD", "healthcheck.sh", "--connect", "--innodb_initialized"]
      interval: 10s
      timeout: 5s
      retries: 3
    ports:
      - "3306:3306"
    volumes:
      - db-data:/var/lib/mysql
volumes:
  db-data:

相关问题