Docker卷MariaDB Windows
我正在尝试Dockerize和Open Source这个我在大学二年级创建的项目,该项目使用MariaDB,phpMyAdmin和PHP/Yii Framework。Docker卷MariaDB Windows
我的目标是让它准备好仅使用简单的 docker-compose up
命令。
我设法让phpMyAdmin和数据库之间的连接工作,现在我被困在试图让Docker有相对路径到数据库卷,以使其一致。
这里是我有一个关于体积安装:
volumes:
- './database/mysql/:/var/lib/mysql'
这是存储项目中的数据库文件,然后我可以在.gitignore
问题忽略这些文件是当我有这个配置运行docker-compose up
我得到:
Invalid volume specification: 'C:\Users\MySelf\coding\my_app\database\mysql:/var/lib/mysql:rw'
至于主持人,我使用与码头工人工具箱Windows,但我想docker-compose.yml
为w不管操作系统如何。
我已经看到过类似的其他问题,但是他们的错误来自于Windows上绝对路径的问题,我不在寻找。
编辑:添加正确的最终泊坞窗,compose.yml,希望它可以帮助
version: '2'
services:
web_db:
build: ./database/mysql
command: "mysqld --innodb-buffer-pool-size=20M"
volumes:
- ./database/mysql/data/:/var/lib/mysql
- ./database/mysql/initDB/create_tables.sql:/docker-entrypoint-initdb.d/create_tables.sql
environment:
MYSQL_ROOT_PASSWORD: 'YOURPASSWORD'
MYSQL_DATABASE: 'support-technique'
MYSQL_ROOT_HOST: '172.17.0.1'
ports:
- "3306:3306"
container_name: web_db
web:
build: .
depends_on:
- web_db
links:
- web_db:db
ports:
- "80:80"
phpmyadmin:
image: phpmyadmin/phpmyadmin
depends_on:
- web_db
links:
- web_db:mysql
ports:
- "8181:80"
environment:
PMA_HOST: mysql
当你Mount a host directory as a data volume,该文件说:
的
host-dir
可以是一个绝对的路径或名称值。如果您为host-dir
提供绝对路径,则Docker会绑定到您指定的路径。如果您提供一个名称,Docker将通过该名称创建一个命名卷。名称值必须以字母数字字符开始,后跟
a-z0-9
,_
(下划线),.
(句点)或-
(连字符)。
绝对路径以/
(正斜杠)开头。
解释错误信息。
使用绝对路径links it to the OS(这是不是你想要的)
docker run -v c:\<path>:/c:\<container path>
docker run -v /c/<path>:/c:\<container path>
正如在 “Running a docker-compose “Getting Started” example causes “Invalid volume specification” on Windows” 中提到,建议先设置此docker-compose environment variable:
创建
.env
文件路径泊坞窗-撰写。YML被置于与以下内容:
COMPOSE_CONVERT_WINDOWS_PATHS=1
的OP Daniel确认in the comments该与.env
包括COMPOSE_CONVERT_WINDOWS_PATHS
,相对路径工作。
我会建议使用data volume name改为:它不依赖于主机路径名。
但'/ var/lib/mysql'这是一个Linux路径! – Hackerman
@Hackerman'/ var/lib/mysql'是Docker容器中不在我的主机上的路径 – Daniel