如何在构建时在Docker容器卷中添加文件

米兰恐慌

我有一个要在容器中运行的python和java应用程序。我有一个名为的文件夹pass-hash:-h2o-start包含Dockerfile用于启动h2o.jar文件夹的文件夹它将启动用于机器学习的服务器。-model-generator包含passhash.pydata.csv文件和一个文件。passhash.py应用程序包含h2o.import_file("/var/my-data/data.csv")它接受data.csv从文件my-data我在容器中创建的文件夹,并生成与它POJO文件。h2o-start Dockerfile包含:

FROM openjdk:8
ADD h2o.jar h2o.jar
EXPOSE 54321
EXPOSE 54322
ENTRYPOINT ["java", "-jar", "h2o.jar"]

model-generator Dockerfile包含:

FROM python:2.7-slim 
WORKDIR /model-generator 
ADD . /model-generator 
RUN mkdir /var/my-data 
COPY data.csv /var/my-data 
RUN chmod 777 /var/my-data/data.csv 
RUN pip install --trusted-host pypi.python.org -r requirements.txt 
EXPOSE 8080 
ENV NAME World 
CMD ["python", "passhash.py"]

docker-compose.yml文件包含:

version: "3"

services:

   h2o-start:
    image: milanpanic2/h2o-start
    build: 
      context: ./h2o-start
    ports: 
      - "54321:54321"
      - "54322:54322"
    volumes:
      - "home/data"

   model-generator:
    image: milanpanic2/model-generator
    build:
      context: ./model-generator
    ports:
      - "8080:8080"
    depends_on:
      - "h2o-start"
    volumes:
      - "csvdata:/var/my-data" 

volumes:
 csvdata:
罗汉·莫希特(Rohan J Mohite)

我不知道,这就是我想出的解决方案。您能告诉我更好的解决方案吗?我的问题是:我有一个使用data.csv文件生成POJO机器学习模型的python应用程序。当我指定此python应用程序到数据文件的路径时,它给出了一个例外,即该文件不存在。另外,我还有另一个用Java编写的应用程序,它使用生成的POJO文件,并根据该数据给出预测。Java应用程序还每天更新data.csv文件。我希望每个应用程序(微服务)都在单独的容器中运行,但希望它们都使用data.csv

要解决此问题,您需要使用卷。

尝试下面的代码。

这是您的docker-compose文件

version: "3" 
services: 
  h2o-start: 
  image: milanpanic2/h2o-start 
  build: context: ./h2o-start 
  ports: 
    - "54321:54321" - "54322:54322" 
  volumes: 
    - /home/data:/var/my-data 
model-generator: 
 image: milanpanic2/model-generator 
 build: context: ./model-generator 
 ports: 
  - "8080:8080" 
 depends_on: 
  - "h2o-start" 
 volumes: 
  - /home/data:/var/my-data

这是你的docker文件

FROM python:2.7-slim 
WORKDIR /model-generator 
ADD . /model-generator 
RUN mkdir /var/my-data
RUN pip install --trusted-host pypi.python.org -r requirements.txt EXPOSE 8080 ENV 
NAME World CMD ["python", "passhash.py"]

您的Java docker文件在哪里?

现在,只需创建一个默认的data.csv文件并将其复制到您的主机位置/ home / data。

并运行应用程序让我知道。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何将卷添加到现有Docker容器中?

在构建期间如何将主机卷挂载到Dockerfile中的Docker容器中

如何在Docker容器中列出卷?

如何在Docker容器中安装/添加JDK 7

如何从已删除的Docker容器中检索卷?

如何在构建时链接Docker容器?

如何从容器中列出Docker安装的卷

重新启动容器时,如何在Docker中重用相同的卷?

如何在docker中以非root用户身份写入卷容器?

如何在Docker人工制品容器中将自己位于的文件夹用作卷?

如何在映像构建时/之后自动运行docker容器?

如何在构建另一个容器的过程中填充Mysql docker容器?

如何在.gitlab-ci.yml中的Docker容器中装载卷?

如何保存Docker容器卷文件?

如何在Docker中将卷从容器挂载到主机?

如何将文件从docker中的卷挂载到容器?

如何在Docker容器中添加文件并使其可从其他容器访问?

在构建Docker容器时在已安装的卷上创建文件

如何在Docker卷中创建到文件的硬链接

将单个文件从NFS docker卷挂载到容器中

如何在Docker容器中添加Python模块?

构建docker期间如何在卷中存储作曲家缓存?

如何在Docker Compose中为每个容器创建单独的卷

使用Terraform和Kubernetes进行部署时如何在Docker容器中修改文件?

如何在Docker容器中从主机查找卷文件?

主机卷中的符号链接如何在Docker容器中工作?

向容器添加网络时 Docker 突然删除卷

如何在 Docker 容器内的主机文件中添加条目?

如何在gitlab中挂载卷并将文件复制到docker容器中?