Dra*_*ban 5 docker docker-compose docker-image docker-volume docker-container
我有一个运行 jar 文件的简单图像。映像内的 jar 文件需要特殊的配置文件才能运行。
在 docker-compose.yml 所在的位置,我有一个名为“Carrier”的文件夹,在该文件夹下我有该文件。
docker-compose.yml:
version: "3.3"
services:
web:
image: "myimage:1.80.0.0"
ports:
- "61003:61003"
volumes:
- ./carrier:/var/local/Config/
Run Code Online (Sandbox Code Playgroud)
当我点击docker-compose up它时,它抱怨该文件不存在,因此它不会复制它。如果我像在 .sh 命令中那样执行另一个选项,如下所示:
volumes:
- ./carrier:/var/local/Config/:shared
Run Code Online (Sandbox Code Playgroud)
它抱怨另一个错误:
C:\Tasks\2246>docker-compose up
Removing 2246_web_1
Recreating 1fbf5d2bcea4_2246_web_1 ... error
ERROR: for 1fbf5d2bcea4_2246_web_1 Cannot start service web: path /host_mnt/c/Tasks/2246/carrier is mounted on / but it is not a shared mount
Run Code Online (Sandbox Code Playgroud)
有人可以帮帮我吗?
使用 Dockerfile 复制文件,使用如下;
FROM myimage:1.80.0.0
RUN mkdir -p /var/local/Config/
COPY carrier /var/local/Config/
EXPOSE 61003
Run Code Online (Sandbox Code Playgroud)
docker-compose.yml
version: "3.3"
services:
web:
build:
dockerfile: Dockerfile
context: '.'
ports:
- "61003:61003"
Run Code Online (Sandbox Code Playgroud)
最后,运行以下命令来构建新映像并启动容器
| 归档时间: |
|
| 查看次数: |
18558 次 |
| 最近记录: |