我试图将可写Docker卷挂载为只读卷的子级,但是我收到此错误:
volumes:
uploads:
driver: local
services:
wordpress:
volumes:
- /dev/workspace/wp-content/:/var/www/html/wp-content/
- uploads:/var/www/html/wp-content/uploads
我正在使用WordPress图片,而我要安装的两个卷是:
快速解决方案是在其他地方移动上传,但我更喜欢Docker解决方案。
我的docker-compose.yml的相关位:
std::map<int/* row */, std::map<int/* col */, QString> > stuff;
int minCol = std::numeric_limits<int>::max();
int maxCol = std::numeric_limits<int>::min();
for (int i = 0; i < selectedIndexes.count(); ++i) {
QModelIndex current = selectedIndexes[i];
int col = horizontalHeader()->visualIndex(current.column());
stuff[current.row()][col] = current.data(Qt::DisplayRole).toString();
minCol = std::min(minCol, current.column());
maxCol = std::max(maxCol, current.column());
}
QString displayText;
for (const auto &byRow: stuff) {
for (int col = minCol; col <= maxCol; ++col) {
auto i = byRow.second.find(col);
if (i != byRow.second.end())
displayText += i->second;
displayText += col == maxCol ? "\n" : "\t";
}
}
答案 0 :(得分:9)
回答我自己的问题:挂载点必须存在于只读卷中,即使它不会被使用。在安装之前,Docker试图在RO卷中创建上传目录。
当我在 / dev / workspace / wp-content / uploads 创建一个空目录时,错误消失了,所有内容都按预期工作。
答案 1 :(得分:6)
是的,一般来说,你可以!以下是只读父路径
的示例-v $DIR/htdocs:/var/www/html:ro
和另一个装载
-v $DIR/logs:/var/www/html/app/cache:rw