[英]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.