Docker + CouchDB configuração otimizada para implementação contínua

2

Comecei recentemente a experimentar o Docker e, quando se trata de implantações de código (por exemplo, servidor de nó), ele funciona muito bem. No entanto, quando se trata de implantação de um servidor couchDB, isso representa um desafio. O aspecto desafiador está provavelmente relacionado à minha ignorância sobre o assunto.

A configuração atual : Implantação contínua na instância do AWS EC2
O problema : Toda implantação limpa o banco de dados e reinstala o couchDB
Fim : as implantações não devem remover e reinstalar o banco de dados. Eles devem simplesmente atualizar a configuração do couchdb se um for fornecido (ou seja, desativar o modo de festa do administrador, adicionar usuário, ...)

Dockerfile: Muito simples: FROM couchdb:latest

Quais são algumas das abordagens que posso usar para realizar isso?

    
por dipole_moment 17.07.2016 / 06:25

2 respostas

2

Você precisa tornar seu volume de dados persistente.

1. Opção:

Monte o Diretório do Host no contêiner

docker run -rm -p 5984: 5984 -v / srv / db_files: /usr/local/var/lib/cachedb --name couchdb klaemo / couchdb: 1.6.1

2. Opção:

Um contêiner do armazenamento de dados (que não é redefinido depois de recriar o contêiner couchdb)

Criar armazenamento de dados

docker create -v / usr / local / var / lib / couchdb --name armazenamento de dados ocupado: latest / bin / true

(também é possível montar um diretório host no contêiner do armazenamento de dados)

docker create -v / srv / db_files: /usr/local/var/lib/chouchdb --name datastore busybox: mais recente / bin / true

Usar o armazenamento de dados

docker run -d --volumes-from datastore -p 5984: 5984 - nome db1 klaemo / couchdb bash

    
por 28.02.2017 / 15:47
1

Acho que a melhor maneira de configurar o CouchDB sem eliminar todo o servidor está executando um script com curl.

Por exemplo, você pode ativar o CORS com o seguinte script (estou usando o Windows e o escape é diferente do UNIX), então criei um arquivo BAT com o seguinte:

set host=%1
echo %host%

if [%host%] == [] (
    SET host=http://localhost:32770
)

curl -X PUT %host%/_config/httpd/enable_cors -d "\"true\""
curl -X PUT %host%/_config/cors/origins -d "\"*\""
curl -X PUT %host%/_config/cors/credentials -d "\"true\""
curl -X PUT %host%/_config/cors/methods -d "\""GET, PUT, POST, HEAD, DELETE\""
curl -X PUT %host%/_config/cors/headers -d "\"accept, authorization, content-type, origin, referer, x-csrf-token\""
curl -X PUT %host%/mydb

O NodeJS tem um plug-in que faz a mesma configuração de CORS para você: link .

Usando o curl, você pode alterar todas as configurações desejadas, incluindo a criação de bancos de dados, usuários e registros.

    
por 03.09.2016 / 06:29