对于一个世界您好示例,我想启动2个容器:
对于我的Flask服务器,我编写了以下Dockerfile:
FROM python:3.7.1
LABEL Author="Test"
LABEL version="1.0.0"
ENV PYTHONDONTWRITEBYTECODE 1
ENV FLASK_APP "app.py"
ENV FLASK_ENV "development"
ENV FLASK_DEBUG True
RUN mkdir /app
WORKDIR /app
RUN pip install flask
ADD . /app
EXPOSE 5000
CMD flask run --host=0.0.0.0
我的docker-compose.yml文件如下:
version: '3'
services:
db:
image: ontotext/graphdb:9.1.1-se
ports:
- "7200:7200"
server:
build: .
ports:
- "5000:5000"
depends_on:
- db
现在我要执行shell命令
loadrdf -c [.ttl文件的路径]
将graphdb实例定位为从文件加载我的RDF数据,该文件位于../ rdf / rdf.ttl(来自Dockerfile和docker-compose.yml的相对路径)。
我的问题是如何从graphdb容器访问rdf.ttl文件以及如何/在何处执行此shell命令?
答案 0 :(得分:3)
您需要在docker-compose.yml中装载一个包含RDF文件的卷:
server:
...
volumes:
- ../rdf:/rdf
在服务运行时,您可以在主机上运行以下命令:
docker-compose exec server loadrdf /rdf/rdf.ttl
这将在容器内运行命令,并在安装点找到文件。