Search code examples
dockerdockerfileapache-servicemix

How can I access the /etc of a pulled servicemix image


I need to install a custom bundle in a dockerized servicemix image. To do so, I need to paste some files in the /etc directory of the servicemix image. Could anyone help me doing this?

I've tried using the Dockerfile as follows: But it simply doesn't work. I've looked through the documentation of the image, and the author tells me to use the command: docker run --volumes-from servicemix-data -it ubuntu bash and inspect the /servicemix, but it's empty.

    Dockerfile:
    FROM dskow/apache-servicemix
    WORKDIR .
    COPY ./docs /apache-servicemix/etc

...

    Command suggested by the author:
    docker run --volumes-from servicemix-data -it ubuntu bash

Solution

  • I was unfamiliar with this approach but, having looked at the source (link), I think this is what you want to do:

    Create a container called servicemix-data that will become your volume:

    docker run --name servicemix-data -v /servicemix busybox
    

    Confirm this worked:

    docker container ls --format="{{.ID}}\t{{.Names}}" --all
    42b3bc4dbedf    servicemix-data
    ...
    

    Then you want to copy the files into this container:

    docker cp ./docs servicemix-data:/etc
    

    Finally, run servicemix using this container (with your files) as the source for its data:

    docker run \
    --detach \
    --name=servicemix \
    --volumes-from=servicemix-data \
    dskow/apache-servicemix
    

    HTH!