Thank you Baptiste for your answer.
However my problem was not ports publishing.

My question was finally answered on StackOverflow:
https://stackoverflow.com/questions/57660451/extending-couchdb-docker-image

It seems that what I was trying to do was not possible: 
        Couchapps are data from CouchDB perspective.
        Therefore they are stored in Docker volumes.
        Therefore couchapps cannot be part of an extended Docker image.

I changed my strategy and used DockerCompose to integrate CouchDB and my 
couchapps:
https://github.com/Hypertopic/Argos/blob/v4/docker-compose.yml


Regards,

Aurélien



> Le 11 nov. 2019 à 18:32, Cluxter <[email protected]> a écrit :
> 
> Hi Aurélien,
> 
> It looks like you haven't mapped the port 5984 between your host and the
> container (also called: publishing the port).
> 
> The Dockerfile of the CouchDB Docker image:
> https://github.com/apache/couchdb-docker/blob/master/2.3.1/Dockerfile
> exposes ports 5984, 4369 and 9100.
> 
> According to the Docker documentation here:
> https://docs.docker.com/engine/reference/builder/
> 
> "The EXPOSE instruction does not actually publish the port. It functions as
> a type of documentation between the person who builds the image and the
> person who runs the container, about which ports are intended to be
> published. To actually publish the port when running the container, use the
> -p flag on docker run to publish and map one or more ports, or the -P flag
> to publish all exposed ports and map them to high-order ports."
> 
> So did you publish the port when you instantiated the container?
> 
> Basically, the container can be seen as a virtual machine (even if it's not
> from a technical perspective) which is in a virtual LAN (a Docker LAN, see
> Docker Networks for more info) sitting behind a NAT. So when you want to
> access a machine on this LAN, you have to map the port between the LAN and
> the rest of the world (your host), as you would do it with any other NAT.
> 
> Let me know how that went out or if you need more info.
> 
> Kind regards,
> 
> Baptiste REBILLARD
> 
> 
> Le jeu. 22 août 2019 à 17:35, Aurélien Bénel <[email protected]> a
> écrit :
> 
>> Hi everyone,
>> 
>> I’m currently trying to benefit from the dockerization of CouchDB (thanks
>> for this, BTW!).
>> My aim would be to dockerize also our own applications that are based on
>> CouchDB.
>> Does any of you have similar experience?
>> 
>> 
>> I read in documentation that for custom configurations there are already
>> known solutions
>> (runtime bind-mount, docker configs or extending Dockerfile with a COPY).
>> 
>> What is still not clear to me is how to extend CouchDB docker image to
>> include preset databases
>> (with design documents and optionally initial data).
>> In my future Dockerfiles, I will probably use couchapp python tool (for
>> compatibility with our existing code),
>> but for now I am trying the simplest thing as possible: just creating a
>> database with curl.
>> 
>> I wrote the following Dockerfile:
>> 
>>    FROM couchdb
>>    RUN curl -X PUT localhost:5984/db
>> 
>> And when I launched the build:
>> 
>>    docker build .
>> 
>> I got:
>> 
>>    curl: (7) Failed to connect to localhost port 5984: Connection refused
>> 
>> I then thought that the service might be not be ready. Hence I tried to
>> add a timeout on curl but in vain.
>> Any idea of why this doesn’t work or about what I should test instead?
>> 
>> 
>> Regards,
>> 
>> Aurélien



Reply via email to