我有一个要在容器中运行的python和java应用程序。我有一个名为的文件夹pass-hash
:-h2o-start
包含Dockerfile
用于启动h2o.jar
该文件夹的文件夹,它将启动用于机器学习的服务器。-model-generator
包含passhash.py
的data.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:
我不知道,这就是我想出的解决方案。您能告诉我更好的解决方案吗?我的问题是:我有一个使用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] 删除。
我来说两句