Docker:运行依赖于mongodb的python脚本

问题描述 投票:0回答:1

我需要在docker中运行此python脚本:

--mongodb_write_static.py--

import pymongo
myclient = pymongo.MongoClient('27017')
--in terminal--
docker-compose build #create Python env, no errors
docker-compose up #create Mongo env and run script

docker-compose up给了我:

  • raise ServerSelectionTimeoutError(write_static_1 | pymongo.errors.ServerSelectionTimeoutError:27017:27017:[Errno 22]无效参数

有人可以帮我吗?非常感谢。

--Dockerfile--

FROM python:3.8.3

ENV PYTHONUNBUFFERED 1

RUN mkdir /code
WORKDIR /code
COPY . /code

RUN pip install datetime numpy pandas pymongo xlrd
CMD ["python", "mongodb_write_static.py"]

--docker-compose.yml--

version: '3.8'
services:
  write_static:
    build:
      context: ./
      dockerfile: ./Dockerfile
    ports:
      - "8000:8000"
    links:
      - mongo
    depends_on:
      - mongo
    volumes:
      - .:/code
  mongo:
    image: mongo
    ports:
      - "27017:27017"
    command: mongod --port 27017 --bind_ip 0.0.0.0
python mongodb docker pymongo
1个回答
0
投票

由于数据库和python代码在不同的容器中运行,因此MongoClient需要了解要连接到哪个主机名。在您的情况下,您可以告诉它连接到mongo,因为那是服务的名称。因此,您的代码更改只是一行:

© www.soinside.com 2019 - 2024. All rights reserved.