无法弄清楚我如何错误配置我的docker-compose文件

时间:2019-04-17 14:48:18

标签: docker docker-compose dockerfile

我遵循了多个指南和教程。

这是我的docker-compose文件。

出现以下错误,

services.mysql.environment.volumes contains ["mysql_data:/var/lib/mysql"], which is an invalid type, it should be a string, number, or a null

它会创建一个名为_volumename的卷吗?

我似乎并没有犯错。

version : '3'
services:
  mysql:
    container_name: auth_db
    restart: always
    image: mysql:latest
    environment:
      MYSQL_ROOT_PASSWORD: supersecret
      MYSQL_DATABASE: name
      MYSQL_USER: user
      MYSQL_PASS: supersecret2
      volumes:
        - mysql_data:/var/lib/mysql
      ports:
        - 3306:3306

  auth-service:
    build: ./authservice
    volumes:
      - ./authservice:/usr/src/app
    ports:
      - 5000:5000

volumes:
  mysql_data: 

更多信息。

如果我将音量线更改为 volumes: "- mysql_data:/var/lib/mysql"

docker-compose文件将编译,但是 docker volume ls给出此输出

local               4fa81a11596c2b67c2bb799d54afc6009ebcd82fcd10acae53a5aeefd005fd36
local               8636df909155569e8ebf0649f4c192616d0b6778d5eb7932b1f9542db55a07d8
local               832739c89f3b33ad0a1974ad7dc2ee9342373f904af3b2be5934331bae50b5e6
local               e5bb4a869f54ce3200d5a1fe129bc1f8ee46515cf03d9dd2ff327430d792117b
local               e35a38127fcb07702a58133883a021aa56c4aad6c439d254f32a119ad380d808
local               hell_mysql_data

docker-compose文件所在的当前目录是地狱,这就是为什么我认为它是前缀

1 个答案:

答案 0 :(得分:1)

您的问题与缩进有关,卷和端口必须在服务定义中排在第一位,如下所示:

version : '3'
services:
    mysql:
      container_name: auth_db
      restart: always
      image: mysql:latest
      environment:
        MYSQL_ROOT_PASSWORD: supersecret
        MYSQL_DATABASE: name
        MYSQL_USER: user
        MYSQL_PASS: supersecret2
      volumes:
        - mysql_data:/var/lib/mysql
      ports:
        - 3306:3306

    auth-service:
      build: ./authservice
      volumes:
        - ./authservice:/usr/src/app
      ports:
        - 5000:5000

volumes:
    mysql_data: