如何将文件复制到docker中的容器

如何将文件复制到docker中的容器,docker,docker-compose,Docker,Docker Compose,我有一个docker compose和一个docker文件 在docker文件中,我在指定的位置复制了说明 问题是,我的dockerfile所在的文件夹中有一个新的JAR文件,但它一直在复制旧的JAR文件。我不知道它在哪里变老了。我已经确保只有一个罐子了 复制./xxxx.jar/home/dev/xxxxd.jar那么假设您的Dockerfile如下所示: FROM openjdk:8 COPY ./xxxx.jar /home/dev/xxxxd.jar CMD ["java&qu

我有一个docker compose和一个docker文件

在docker文件中,我在指定的位置复制了说明

问题是,我的dockerfile所在的文件夹中有一个新的JAR文件,但它一直在复制旧的JAR文件。我不知道它在哪里变老了。我已经确保只有一个罐子了


复制./xxxx.jar/home/dev/xxxxd.jar

那么假设您的
Dockerfile
如下所示:

FROM openjdk:8
COPY ./xxxx.jar /home/dev/xxxxd.jar
CMD ["java", "-jar", "/home/dev/xxxxd.jar"]
version: "3.4"
services:
  project:
    build: .
    volumes:
      - ./:/home/dev
您的项目有一些文件夹,如

project/
    Dockerfile
    docker-compose.yml
    xxxx.jar
    old-xxxx.jar
您可以使您的
docker compose.yml
如下所示:

FROM openjdk:8
COPY ./xxxx.jar /home/dev/xxxxd.jar
CMD ["java", "-jar", "/home/dev/xxxxd.jar"]
version: "3.4"
services:
  project:
    build: .
    volumes:
      - ./:/home/dev
此行将在构建时将jar复制到映像

COPY ./xxxx.jar /home/dev/xxxxd.jar
此docker compose volume部件将运行docker容器,类似于使用以下docker run命令

docker run -v ./:/home/dev project 
这将在运行之前将项目文件夹装载到
/home/dev
。 其中应该包含与项目文件夹中的jar相同的最新jar

如果你注意到一些不寻常的事情,你可以试试我在事情出错时所做的

docker-compose up --build
如果其他一切都失败了:

docker-compose stop && docker-compose rm -sfv && docker-compose up
类似问题:


假设您的
Dockerfile
如下所示:

FROM openjdk:8
COPY ./xxxx.jar /home/dev/xxxxd.jar
CMD ["java", "-jar", "/home/dev/xxxxd.jar"]
version: "3.4"
services:
  project:
    build: .
    volumes:
      - ./:/home/dev
您的项目有一些文件夹,如

project/
    Dockerfile
    docker-compose.yml
    xxxx.jar
    old-xxxx.jar
您可以使您的
docker compose.yml
如下所示:

FROM openjdk:8
COPY ./xxxx.jar /home/dev/xxxxd.jar
CMD ["java", "-jar", "/home/dev/xxxxd.jar"]
version: "3.4"
services:
  project:
    build: .
    volumes:
      - ./:/home/dev
此行将在构建时将jar复制到映像

COPY ./xxxx.jar /home/dev/xxxxd.jar
此docker compose volume部件将运行docker容器,类似于使用以下docker run命令

docker run -v ./:/home/dev project 
这将在运行之前将项目文件夹装载到
/home/dev
。 其中应该包含与项目文件夹中的jar相同的最新jar

如果你注意到一些不寻常的事情,你可以试试我在事情出错时所做的

docker-compose up --build
如果其他一切都失败了:

docker-compose stop && docker-compose rm -sfv && docker-compose up
类似问题:


你能在没有缓存的情况下构建映像吗docker compose build--没有缓存我不使用任何构建指令当你有一个新的jar文件时,你必须构建一个新的docker映像,对吗?我是不是遗漏了什么?使用docker或docker compose。你需要建立一个新的图像确切地说,我找到了罪犯。这些图像不是重建的,而是从以前的版本中获取的。我不知道当容器被删除时,我们是否可以强制重新生成或删除图像您可以在没有缓存docker compose build的情况下构建图像吗?没有缓存我不使用任何构建指令当您有一个新的jar文件时,您必须构建一个新的docker图像,对吗?我是不是遗漏了什么?使用docker或docker compose。你需要建立一个新的图像确切地说,我找到了罪犯。这些图像不是重建的,而是从以前的版本中获取的。我不知道我们是否可以强制重建图像或在删除容器时删除图像感谢您的帮助,我已经解决了重建图像所需的问题。感谢您的帮助,我已经解决了重建图像所需的问题。