【问题标题】:camel - how to move files outside docker container骆驼 - 如何将文件移动到 docker 容器外
【发布时间】:2017-11-11 17:37:11
【问题描述】:

我在容器内有一个spring boot应用程序,我使用camel读取一些文件,但我需要告诉camel开始在容器外读取,然后将同一个文件移动到容器外的特定路径,有人可以帮助我吗?,

这是我的代码:

@Component
public class Controlador extends RouteBuilder {

    @Autowired
    Procesador objProcesador;

    @Override
    public void configure() throws Exception {
        from("ftp://user@ip:port?password=password&passiveMode=true&delete=true").streamCaching().convertBodyTo(InputStream.class).process(objProcesador).to("/var/lib");
    }

}

提前致谢

【问题讨论】:

  • 使用move URI 选项而不是删除。 stackoverflow.com/questions/19905462/…
  • 是的,这会移动文件,但如何指定容器外部的路径?
  • 不确定“容器外”是什么意思。如果这意味着在远程 FTP 服务器上移动文件,那么从 camel-file2 组件继承的“移动”选项应该可以工作
  • 我的意思是我不能使用 ftp,因为我要移动的文件在 docker 主机上,例如,该文件将在 /var/lib/files 但如果我添加我的 jar 中的路径,它会搜索 jar 运行的位置而不是主机上,我是在解释自己吗?

标签: docker spring-boot apache-camel


【解决方案1】:

在容器之外是什么意思?如果您指的是运行容器的主机上的路径,则需要将该路径共享为卷。在使用 "docker run.." 或在 Dockerfile 中设置卷。如果您的意思是 Camel 应该通过 ftp 或 sftp 获取文件,请确保容器可以首先访问该站点。

【讨论】:

  • 是的,我需要来自主机的文件,但是否可以在两个不同的路径之间读取和移动文件?因为我需要从 /mnt/files 读取文件但稍后移动文件到主机上的另一个位置,例如 /var/lib/files
  • 是的。两条路径都必须设置为volumes,以便容器可以访问它。然后,您可以使用带有相对或绝对路径的 &move 选项来安装卷。
  • 您需要在主机上的任何路径都需要挂载为卷,以便容器能够访问它。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2015-06-30
  • 2017-11-01
  • 1970-01-01
  • 1970-01-01
  • 2022-11-10
  • 1970-01-01
  • 2021-09-30
相关资源
最近更新 更多