簡體   English   中英

如何在Web應用程序的Docker映像中安裝和啟動CouchDB服務器?

[英]How to install and start CouchDB server in a Docker image of a Web Application?

我制作了一個基於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"]

歡迎來到SO! 我通過使用Docker-Compose運行單獨的CouchDB容器和單獨的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中定義它。

僅當您遇到路由問題時,才需要網絡部分。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM