如何在Web应用程序的Docker映像中安装和启动CouchDB服务器?

2024-06-28 06:13:21 发布

您现在位置:Python中文网/ 问答频道 /正文

我制作了一个基于Python构建的Web应用程序的Docker映像,我的Web应用程序需要CouchDB服务器在运行程序之前启动。谁能告诉我如何在这个Web应用程序的Dockerfile中安装和运行CouchDB服务器。我的Dockerfile如下:

FROM python:2.7.15-alpine3.7
RUN mkdir /home/WebDocker
ADD ./Webpage1 /home/WebDocker/Webpage1
ADD ./requirements.txt /home/WebDocker/requirements.txt

WORKDIR /home/WebDocker

RUN pip install -r /home/WebDocker/requirements.txt
RUN apk update && \
        apk upgrade && \^M
        apk add bash vim sudo
EXPOSE 8080
ENTRYPOINT ["/bin/bash"]

Tags: dockerrundockerfile服务器txtbashaddweb
1条回答
网友
1楼 · 发布于 2024-06-28 06:13:21

欢迎来到SO!我通过使用Docker-Compose运行一个单独的CouchDB Container和一个单独的Python容器来解决这个问题。配置文件docker-compose.yml的相关部分如下所示:

# This help to avoid routing conflict within virtual machines:
networks:
  default:
    ipam:
      driver: default
      config:
        - subnet: 192.168.112.0/24


# The CouchDB data is kept in docker volume:
volumes:
  couchdb_data:


services:
 # The container couchServer uses Dockerfile from the subdirectory CouchDB-DIR 
 # and it has the hostname 'couchServer':
  couchServer:
    build:
      context: .
      dockerfile: CouchDB-DIR/Dockerfile
    ports:
      - "5984:5984"
    volumes:
      - type: volume
        source: couchdb_data
        target: /opt/couchdb/data
        read_only: False 
      - type: volume
        source: ${DOCKER_VOLUMES_BASEPATH}/couchdb_log
        target: /var/log/couchdb
        read_only: False
    tty: true
    environment:
      - COUCHDB_PASSWORD=__secret__
      - COUCHDB_USER=admin
  python_app:
    build:
      context: .
      dockerfile: ./Python_DIR/Dockerfile
...

在Docker子网中,http://couchServer:5984可以从Python容器访问CouchDB。为了确保重启容器时CouchDB不会丢失,它被保存在一个单独的Docker卷couchdb_data。 使用环境变量DOCKER_VOLUMES_BASEPATH来确定CouchDB记录在哪个目录中。它可以在.env-file中定义。在

只有当您遇到路由问题时,网络部分才是必需的。在

相关问题 更多 >