![](/img/trans.png)
[英]docker-compose Error Cannot start service mongo: driver failed programming external connectivity on endpoint
[英]Cannot rebuild a service after docker-compose with mongo volume is built
我有一個像這樣的 docker-compose 文件:
version: "3.4"
services:
mongo:
image: mongo
restart: always
container_name: us_mongodb
environment:
...
volumes:
- ./mongo-dev-volume:/data/db
mongo-express:
...
example-app:
build:
context: ../../
dockerfile: "./example-app/Dockerfile"
args:
- PORT=4200
container_name: us_example-app_builder_and_server
ports:
- 4200:4200
volumes:
mongo-dev-volume:
(示例應用 dockerfile 只是一個簡單的靜態文件服務器,它將文件復制到自身。)
如果我運行docker-compose up
一切都很好。
我想重建上述示例應用程序,所以我運行以下命令:
docker-compose up -d --force-recreate --no-deps --build example-app
為此,我收到以下錯誤消息:
forest@forest:~/xxxxxx/xxxxxx/Docker/prod-nginx$ docker-compose up -d --force-recreate --no-deps --build example-app
Building example-app
Traceback (most recent call last):
File "bin/docker-compose", line 6, in <module>
...
[Previous line repeated 1 more time]
File "site-packages/docker/utils/build.py", line 184, in rec_walk
PermissionError: [Errno 13] Permission denied: '/xxxxxx/xxxxxx/Docker/prod-nginx/mongo-dev-volume/journal'
這里有什么問題?
我已經發現/嘗試過的事情: 1.) 所述服務與mongodb 卷無關。 但是如果我刪除了所說的 mongo-dev-volume,那么命令就可以運行了。 之后,如果單個docker-compose up
創建了所述文件夾,問題仍然出現。 但這不是在每次重新啟動時刪除數據庫的解決方案......
2.) 我仍然可以毫無問題地執行docker-compose down
和docker-compose up
(但正如我所說,我需要重建上述示例應用程序......)
3.) 我嘗試添加 .dockerignore ,如在其他一些線程中看到的:
#.dockerignore
**/mongo-dev-volume
但它似乎沒有任何影響。 (它就在 docker-compose.yml 旁邊)
4.) 我懷疑某些事情與權限有關。 但我不創建卷(只綁定名稱),由 docker 創建:
forest@forest:~/xxxxxx/xxxxxx/Docker/prod-nginx$ ls -lsh
total 32K
4,0K -rw-rw-r-- 1 forest forest 3,8K dec 5 10:31 docker-compose.yml
4,0K drwxrwxr-x 2 forest forest 4,0K júl 1 12:25 example-app
4,0K drwxrwxr-x 4 999 root 4,0K dec 5 13:12 mongo-dev-volume
我的一種解決方法是刪除卷綁定,並讓 Docker 在工作目錄之外創建一個單獨的(單獨處理的)卷。
而不是這個
./mongo-dev-volume:/data/db
我輸入了這個:
mongo-dev-volume:/data/db
這樣,我仍然可以訪問該文件,據我所知,最好讓 OS 和 Docker 處理此問題,而不是在項目中創建 filesys 鏈接。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.