我使用了dockerise来编辑依赖于一个运行良好的数据库的python应用程序。python应用程序生成一个powerpoint文件,它将其存储在容器中的/tmp中。然后,它需要转换为pdf,为伪造的正面趋向渲染它。我打算使用一个伪造的libreoffice映像https://hub.docker.com/r/domnulnopcea/libreoffice-headless/来实现这一点。
libreoffice容器按以下方式运行
sudo docker run -v /YOUR_HOST_PATH/:/tmp libreoffice-headless libreoffice --headless --convert-to pdf /tmp/MY_PPT_FILE --outdir /tmpYOUR_HOST_PATH在我的python应用程序容器中的位置
我需要发生的事情,
我需要python应用程序来调用libreoffice容器,并转换驻留在python应用程序容器中的ppt文件,然后将转换后的文档的路径提供给前端呈现。
基本上,如何使不同的码头容器中的文件彼此可以使用坞-组合。
我的船坞-合成人。
version: '3'
services:
backend:
image: interrodata_backend
build: ./backend
ports:
- "9090:9090"
depends_on:
- db
environment:
- DATABASE_HOST=db
db:
image: nielsen_db
restart: always
build: ./db发布于 2018-04-09 16:44:23
如何在另一个容器中调用命令?
在这个答案中,@Horgix解释了调用驻留在另一个容器中的可执行文件的方法。对于您的情况,最干净的方法是使您的libreoffice容器成为一个服务,并向外部公开一个HTTP。然后从Python应用程序容器调用这个API。
如何在不同容器之间共享文件?
您可以使用卷或绑定挂载来实现这一点。
例如,要使用绑定挂载:
docker run -v /host/path:/tmp python-app
docker run -v /host/path:/tmp libreoffice-headlessPython将文件生成到自己的/tmp目录中。libreoffice应用程序将在自己的/tmp目录中找到相同的文件。他们共享同一个目录。
使用卷的想法是一样的。您可以找到更多信息,这里。
https://stackoverflow.com/questions/49736501
复制相似问题