Keyur Golani
Keyur Golani

Reputation: 583

How to commit docker container with shared volume content

I have created a docker image of the working environment that I use for my project.

Now I am running the docker using

$ docker run -it -p 80:80 -v ~/api:/api <Image ID> bash

I do this because I don't want to develop in command line and this way I can have my project in api volume and can run the project from inside too.

Now, when I commit the container to share the latest development with someone, it doesn't pack the api volume.

Is there any way I can commit the shared volume along with the container?

Or is there any better way to develop from host and continuously have it reflected inside docker then the one I am using (shared volume)?

Upvotes: 1

Views: 518

Answers (1)

Robert
Robert

Reputation: 36843

A way to go is following:

Dockerfile:

FROM something
...
COPY .api/:/api
...

Then build:

docker build . -t myapi

Then run:

docker run -it -p 80:80 -v ~/api:/api myapi bash

At this point you have myapi image with the first state (when you copied with COPY), and at runtime the container has /api overrided by the directory binding.

Then to share your image to someone, just build again, so you will get a new and updated myapi ready to be shared.

Upvotes: 1

Related Questions