Recientemente he comenzado a experimentar con Docker y, en lo que respecta a las implementaciones de código (es decir, el servidor de nodo), funciona extremadamente bien. Sin embargo, cuando se trata de la implementación de un servidor couchDB, esto plantea un desafío. El aspecto desafiante probablemente esté relacionado con mi ignorancia sobre el tema.
La configuración actual : Implementación continua en la instancia de AWS EC2
La cuestión : Cada implementación borra la base de datos y reinstala couchDB
Objetivo final : Las implementaciones no deben eliminar y reinstalar la base de datos. Simplemente deben actualizar la configuración de couchdb si se proporciona una (es decir, desactivar el modo de administrador, agregar usuario ...
Dockerfile:
Bastante simple: FROM couchdb:latest
¿Cuáles son algunos enfoques que puedo usar para lograr esto?
fuente
Respuestas:
Tienes que hacer que tu volumen de datos sea persistente.
1. Opción:
Montar el Directorio de Host en el contenedor
docker run -rm -p 5984: 5984 -v / srv / db_files: / usr / local / var / lib / couchdb --name couchdb klaemo / couchdb: 1.6.1
2. Opción:
Un contenedor de Datastore (que no se restablece después de volver a crear el contenedor couchdb)
Crear almacén de datos
ventana acoplable crear -v / usr / local / var / lib / couchdb - nombre del almacén de datos busybox: última / bin / true
(También es posible montar un directorio de host en el contenedor del almacén de datos)
docker cree -v / srv / db_files: / usr / local / var / lib / couchdb - nombre del almacén de datos busybox: latest / bin / true
Utilizar Datastore
ventana acoplable ejecutada -d - volúmenes-desde el almacén de datos -p 5984: 5984 - nombre db1 klaemo / couchdb bash
fuente
Creo que la mejor manera de configurar CouchDB sin borrar todo el servidor, es ejecutar un script con curl.
Por ejemplo, puede habilitar CORS con la siguiente secuencia de comandos (estoy usando Windows y el escape es diferente de UNIX), así que creé un archivo BAT con lo siguiente:
NodeJS tiene un complemento que hace la misma configuración de CORS para ti: https://github.com/pouchdb/add-cors-to-couchdb .
Con curl puede cambiar todas las configuraciones que desee, incluida la creación de bases de datos, usuarios y registros.
fuente