【发布时间】:2019-06-12 11:24:27
【问题描述】:
通过 docker-compose 在两个 python 网络服务器(收集器和计算器)之间共享双精度缓冲区
我试图简单地将缓冲区或整数数组从称为收集器的 python 服务器发送到另一个称为计算器的服务器。计算器服务器应该执行简单的数学算法。这都是一场试炼。收集器和计算器 python 脚本在 docker-compose 中运行在两个容器中,旨在连接到同一个网络。
收集器 python 脚本
app=Flask(__name__)
@app.route('/')
def index():
d={"my_number": list(range(10))}
return jsonify(d)
计算器python脚本
import requests
r=requests.get('https://collector:5000')
app = Flask(__name__)
@app.route('/')
def index():
numbers_array = r.json()["my_numbers"]
x=numbers_array[1] + numbers_array[2]
return '{}'.format(x)
docker-compose.yml
services:
collector:
build: .
env_file:
- collector.env
ports:
- '5000:5000'
volumes:
- '.:/app'
networks:
- my_network
calculator:
build: ./calculator
depends_on:
- collector
env_file:
- calculator.env
ports:
- '5001:5000'
volumes:
- './calculator:/app'
networks:
- my_network
networks:
my_network:
driver: bridge
两个镜像的 Dockerfile 相同
FROM python:2.7-slim
RUN mkdir /app
WORKDIR /app
COPY requirements.txt requirements.txt
RUN pip install -r requirements.txt
COPY . .
LABEL maintainer="Mahmoud KD"
VOLUME ["/app/public"]
CMD flask run --host=0.0.0.0 --port=5000
当我运行 docker-compose up --build 时,第一台服务器、收集器可以在我的计算机主机上实现并且工作正常。第二个服务器,calculator,无法通过 request.get 连接到收集器。我试图在 docker-compose 运行两个容器时从计算器容器 ping 收集器并且 ping 不起作用,它显示“在 PATH 中找不到可执行文件:未知”。似乎没有建立两个容器的连接,尽管在检查 my_network 时它显示了两个容器。任何人都可以告诉我我做错了什么。非常感谢...
【问题讨论】:
标签: python docker docker-compose webserver dockerfile