java写docker_在Docker上运行的Java App中写入文件

背景

我正在尝试创建一个编译器Web服务,因此用户可以发布用我编写的某种语言编写的代码,然后它将编译,运行并返回打印结果.我的第二次迭代涉及使用Docker镜像来隔离POST进入我正在运行的Web服务器的代码的运行.

问题

我试图将发布的代码写入文本文件以在其上运行我的编译器,但我的编译器尝试创建文件失败.我的文件路径应该是正确的,我的其他测试路由正常.这是我正在尝试运行的一些演示代码,但失败了:

try (Writer writer = new BufferedWriter(new OutputStreamWriter(

new FileOutputStream("/raw/compile-source.slacc"), "utf-8"))) {

writer.write(req.body());

}

在我用来启动它的Dockerfile中,我创建了/ raw目录,如果重要的话.我想象Docker不希望Java进程创建任意文件.有什么想法吗?下面是我的Dockerfile.

我的Dockerfile

FROM java:8

# Install maven

RUN apt-get update

RUN apt-get install -y maven

WORKDIR /code

# Prepare by downloading dependencies

ADD pom.xml /code/pom.xml

RUN ["mvn", "dependency:resolve"]

RUN ["mvn", "verify"]

# Adding source, compile and package into a fat jar

ADD src /code/src

RUN ["mvn", "package"]

CMD ["java", "-version"]

CMD ["mkdir", "/raw"]

CMD ["mkdir", "/classfiles"];

CMD ["mkdir", "/out"];

EXPOSE 4567

CMD ["mvn", "exec:java"]

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值