簡體   English   中英

如何使用 docker-compose 復制容器內的文件

[英]How to copy files inside container with docker-compose

我有一個運行 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/
    

當我點擊docker-compose up它抱怨文件不存在,所以它不會復制它。 如果我像在 .sh 命令中那樣執行另一個選項,則如下所示:

       volumes:
            - ./carrier:/var/local/Config/:shared

它抱怨另一個錯誤:

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
        

有人可以幫幫我嗎?

刪除最后一個/

volumes:
  - ./carrier:/var/local/Config

如果不復制,您可以使用 Dockerfile。

Dockerfile;

FROM image

COPY files /var/local/Config/

EXPOSE 61003

Docker-compose;

version: "3.3"
services:
    web:
        build: . (path contains Dockerfile)
        ports:
            - "61003:61003"
        volumes:
            - ./carrier:/var/local/Config/

我不確定,但您可以嘗試將所有用戶的完全訪問權限設置為 /carrier:

chmod -R 777 /carrier

感謝大家的所有回答。 似乎最終 docker 在構建圖像時警告我對 windows 文件與 Linux 文件進行了一些比較。 (不使用 docker 撰寫,但使用 Dockerfile)。

SECURITY WARNING: You are building a Docker image from Windows against a non-Windows Docker host. All files and directories added to build context will have '-rwxr-xr-x' permissions. It is recommended to double check and reset permissions for sensitive files and directories.

在 linux 上進行了嘗試,並且可以正常工作。

使用 Dockerfile 復制文件,在下面使用;

FROM myimage:1.80.0.0
RUN mkdir -p /var/local/Config/
COPY carrier /var/local/Config/
EXPOSE 61003

docker-compose.yml

version: "3.3"
services:
  web:
    build:
      dockerfile: Dockerfile
      context: '.'
   ports:
    - "61003:61003"

最后,運行以下命令來構建新鏡像並啟動容器

  • docker-compose up -d --build

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM