Hi Tom,

> With docker compose, the following commands:
> 
>> docker build -t swift-dev-image .
>> docker create -it --name development -v 
>> /my/absolute/path/to/swift:/container/mount-point swift-dev-image
>> docker start -ai development
> 
> Become:
> 
>> docker-compose up

Fair enough (for some reason I’ve never thought of using compose for a single 
container, but it totally makes sense).
Let’s see what you’ll come up with! 👍

max

> On Dec 18, 2015, at 7:06 PM, Thomas Catterall <m...@swizzlr.co> wrote:
> 
> Hi Max,
> 
> Thanks for your reply and encouragement! I will do just that.
> 
> Docker volumes allow you to specify volumes to mount inside the container; 
> where this shines is mounting host directories into the container, so that 
> one can edit files on the host and see the changes reflected immediately in 
> the container.
> 
> Docker-compose does a lot of things, but in particular its benefit is that it 
> can encapsulate a lot of configuration for a container. One example of that 
> configuration is the above volumes feature, which is normally a pain to write 
> out on the command line. Another is the usual dance of building an image, 
> creating the container, and then starting and stopping it with the correct 
> state. With docker compose, the following commands:
> 
>> docker build -t swift-dev-image .
>> docker create -it --name development -v 
>> /my/absolute/path/to/swift:/container/mount-point swift-dev-image
>> docker start -ai development
> 
> Become:
> 
>> docker-compose up
> 
> 
> In my research I have however discovered that this kind of mounting is quite 
> flaky/nonexistent for certain docker hosts, in particular OS X, however there 
> are indeed plugins for docker that use rsync to achieve the desired effect, 
> so it's still quite doable. I'll look into it.
> 
> Regarding alternate systems, yes, that would be amazing! Docker base images 
> are rarely reflective of general Linux distributions, so caution is needed 
> when trying to apply them as a way of checking compatibility, but certain 
> fundamental things are possible such as checking Ubuntu 14 vs 15, centOS, 
> Debian, Fedora at a core level. It would be interesting, however, to create 
> functional test suites using full distro base images (I'm sure they exist) 
> that can then have the packages installed on them as a way of verifying a 
> wide array of configurations in an automated fashion.
> 
> I think for now my objective will be to provide a quickstart docker image and 
> docker-compose, using a metarepo with submodules to achieve the desired 
> effects.
> 
> I would be very, very interested in hearing from Swift developers about ways 
> of accelerating time to development by providing build intermediates.
> 
> Best,
> 
> Tom
> 
> Sent from my iPhone
> 
> On 18 Dec 2015, at 21:25, Max Moiseev <mois...@apple.com 
> <mailto:mois...@apple.com>> wrote:
> 
>> I personally think it would be of great help to newcomers to have a 
>> containerized development environment to quickly start experimenting. 
>> Non-newcomers would also benefit from it by being able to test their changes 
>> on different versions of Linux, for example.
>> 
>> I would prepare a set of scripts and Dockerfile’s in a separate repo to 
>> start with, and at least add a link to it to Swift’s main ‘README’ via a PR 
>> to see what the community has to say. Maybe an extra paragraph in 'system 
>> requirements’?
>> 
>> On a slightly more technical note, can you elaborate a bit more on why you’d 
>> need a docker-compose? If only for volumes to be in a separate container… 
>> Maybe I’m missing something.
>> 
>> thanks,
>> max
>> 
>>> On Dec 18, 2015, at 12:34 PM, swizzlr via swift-dev <swift-dev@swift.org 
>>> <mailto:swift-dev@swift.org>> wrote:
>>> 
>>> Hacking on Swift
>>> 
>>> Just as it’s possible to build Swift in a docker container so too is it 
>>> possible to actively develop the language in a Linux environment, while 
>>> still benefitting from any local affordances you may have. If there is 
>>> interest from the core team, I would be happy to contribute a meta-repo of 
>>> Swift, submoduleing all the repos and supplying a docker-compose file which 
>>> would enable developers to provision a development machine while being able 
>>> to mirror local changes over to the machine. Similarly, “preheated” images 
>>> could be built which would eliminate the need for a fresh build when first 
>>> starting on the project.
>>> 
>> 

_______________________________________________
swift-dev mailing list
swift-dev@swift.org
https://lists.swift.org/mailman/listinfo/swift-dev

Reply via email to