简体   繁体   中英

Editing Docker container FS using Atom/Sublime-Text?

I'm running OSX and Docker with the help of boot2docker.

From my understanding boot2docker is a lightweight linux distro that is running the docker containers. I have some Ubuntu containers that I use to run and test projects that should specifically run well on Linux.

However every small code change from my host text editor of choice, requires me to re-build image and re-run the container. Run the app and confirm that the change I made didn't break something.

Is there a way for me to open a Docker container FS folder in a text editor from my host machine? (aka Remote edit?)

Have any of you guys done this? Any ideas will be awesome. I think about setuping SFTP or SSHD on the Docker container, but I would want your opinion?

What I often do is, in development, mount the source code of the application to its usual place in a volume . Then, I set the command (or entrypoint) of the container to a script that launches it in "development mode" (for example, by using nodemon for a node.js application, setting RAILS_ENV=development in Rails, and so on).

Volumes do work on Mac OS X (and I assume Windows) under boot2docker or docker-machine, with the caveat that you need to be working somewhere beneath your home directory.

For a concrete example, here's a repository that I set this up in. The ingredients:

  1. script/dev is my "dev-mode" entrypoint. It launches the main application under nodemon.
  2. When I launch the container, I mount the source directory into the container as a volume and set script/dev as the command . (I'm using docker-compose here to launch and link in an upstream dependency, so I can do everything in one command.)

With those two things in place, I can run docker-compose up , make a source change in whatever editor I choose on my host, save the file, and the service within the container auto-reloads to bring my changes into effect. Presto!

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM