Docker compose 在docker compose中声明卷

Docker compose 在docker compose中声明卷,docker-compose,docker-app,Docker Compose,Docker App,我正在使用docker应用程序生成的docker compose文件 docker-app render | docker-compose -f - up docker应用程序文件如下所示,并按预期工作。但我不能使用卷 我在使用docker运行命令时使用-v参数,如下所示 -v /my/custom3399:/etc/mysql/conf.d -v /storage/mysql/datadir3399:/var/lib/mysql 如何在compose文件中声明卷 # vi hell

我正在使用docker应用程序生成的docker compose文件

docker-app  render | docker-compose -f - up
docker应用程序文件如下所示,并按预期工作。但我不能使用卷

我在使用docker运行命令时使用-v参数,如下所示

-v /my/custom3399:/etc/mysql/conf.d  
-v /storage/mysql/datadir3399:/var/lib/mysql 
如何在compose文件中声明卷

# vi hello.dockerapp
# This section contains your application metadata.
# Version of the application
version: 0.1.0
# Name of the application
name: hello
# A short description of the application
description:
# Namespace to use when pushing to a registry. This is typically your Hub username.
#namespace: myHubUsername
# List of application maitainers with name and email for each
maintainers:
  - name: root
    email:
# Specify false here if your application doesn't support Swarm or Kubernetes
targets:
  swarm: false
  kubernetes: false

--
# This section contains the Compose file that describes your application services.

version: "3.5"
services:
  mysql:
    image: ${mysql.image.version}
    environment:
      MYSQL_ROOT_PASSWORD: india${mysql.port}
    ports:
      - "${mysql.port}:3306"


--
# This section contains the default values for your application settings.
mysql.image.version: shantanuo/mysql:5.7
mysql.port: 3391

更新:

上面提到的剧本效果很好。但一旦添加卷,就会出现一个错误:

version: "3.5"
services:
  mysql:
    image: ${mysql.image.version}
    environment:
      MYSQL_ROOT_PASSWORD: india${mysql.port}
    ports:
      - "${mysql.port}:3306"
    volumes:
      - type: volume
        source: mysql_data
        target: /var/lib/mysql

volumes:
  mysql_data:
    external: true

错误是:

docker-app  render | docker-compose -f - up
Recreating e5c833e2187d_hashi_mysql_1 ... error

ERROR: for e5c833e2187d_hashi_mysql_1  Cannot create container for service mysql: Duplicate mount point: /var/lib/mysql

ERROR: for mysql  Cannot create container for service mysql: Duplicate mount point: /var/lib/mysql
ERROR: Encountered errors while bringing up the project.

如注释中所述,呈现的输出如下所示:

#  /usr/local/bin/docker-app  render
version: "3.5"
services:
  mysql:
    environment:
      MYSQL_ROOT_PASSWORD: india3391
    image: shantanuo/mysql:5.7
    ports:
    - mode: ingress
      target: 3306
      published: 3391
      protocol: tcp
    volumes:
    - type: volume
      source: mysql_data
      target: /var/lib/mysql
volumes:
  mysql_data:
    name: mysql_data
    external: true

这个问题在我更改目录名后得到了解决

# cd ..
# mv hashi/ hashi123/
# cd hashi123

不知道这是怎么回事。但由于我能够启动服务器堆栈,所以我将其作为答案发布。

使用卷选项,我得到错误:对于mysql,无法为服务创建容器mysql:Duplicate mount point:/var/lib/mysql您可能希望编辑您的帖子,以包含该错误和更改的docker compose文件(请显示呈现的输出)docker compose正在生成不同的容器,因为您更改了路径。就像重新开始一样。