emacs-orgmode
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [O] Emacs+org-mode in a Docker?


From: John Kitchin
Subject: Re: [O] Emacs+org-mode in a Docker?
Date: Wed, 04 Nov 2015 06:07:55 -0500
User-agent: mu4e 0.9.13; emacs 25.0.50.1

Thanks for all the notes! It looks like a not too trivial exercise that
might have to be a summer project for me.

briangpowell . writes:

> * Here are some of my notes+URL links on some docker+emacs experiments thus
> far:
>
> ** Last I checked some glimmering developments seem to be coming to light
> in the docker+emacs realm:
>
> *** Believe some links below might be stepping-stones for your students,
> Dr. Kitchin:
>
> ** Happily, below, I note coming across some work by one of our favorite
> Elisp hackers of "elnode" fame: Nic Ferrier
>
> ** "docker.el" was in development too last I looked into this--see link
> below.
>
> * Linux Containers: ###1 read and take advice here FIRST:
> http://stackoverflow.com/questions/27083182/running-emacs-in-a-docker-container
>
>
> ** These links are slightly tangential but I suggest them since they're
> also stepping-stones to really what's going on under-the-docker-hood:
>
> ** https://en.wikipedia.org/wiki/Copy-on-write
> **
> http://www.linuxjournal.com/content/docker-lightweight-linux-containers-consistent-development-and-deployment?page=0,0
> ** http://www.liquidweb.com/kb/how-to-install-docker-on-ubuntu-14-04-lts
> ** http://aufs.sourceforge.net
> ** https://linuxcontainers.org
>
> * Can run xampp on a docker--see notes and experiments below, here are
> first checks and steps:
> ** docker inspect garland/xampp-base docker
> ** netstat -lnp|grep 8080" ; echo "=>" ; netstat -lnp | grep 8080 ; sleep 3
> * Now try to run the xampp container:
> docker run -t -i -p 8080:80 garland/xampp-base /bin/bash &
>
> * /opt/lampp/lampp startapache
> ** http://localhost:8080/xampp/splash.php
> ** xterm -e docker run -i -t debian /bin/bash
> ** xterm -e docker run -i -t ubuntu /bin/bash
> ** docker run -i -t debian /bin/bash &
> *** xampp on docker!?:
>
> * Enabling XAMPP Web Interface with docker:
>
> Start Docker in interactive mode
>
> [[shell:docker run -t -i -p 8080:80 garland/xampp-base /bin/bash &]]
>
> vim /opt/lampp/etc/extra/httpd-xampp.conf
> Remove the bottom 4 lines.docker.el
> **** Commented out the bottom 4 lines and then this got it semi-working
> (returned "Object not found!" error) after I did this:
> /opt/lampp/lampp startapache
> google-chrome http://localhost:8080/:80
> ***** This worked!(after starting apache in the docker xterm): google
> http://localhost:8080/xampp/splash.php
>
> ** https://github.com/Silex/docker.el
>
> * [[shell:echo * Put emacs in Docker(but remember all writes will be
> lost--so to really keep things write to volume(s)):";cd;docker pull
> biscarch/emacs &]]
>
> ** Just mounted a "volume" (to Docker: volumes are read-write(usually) dirs
> and/or files outside the Union File system (aufs) and available to the host
> AND the container)
> docker run -it --name container-test -h CONTAINER -v /data debian /bin/bash
> docker inspect -f {{.Volumes}} container-test =>
> map[/data:/var/lib/docker/vfs/dir/79d22ddf7a12b6e283c74df521289adb6b537883686eb43aa3c2405f0c6aacae]
> date >
> /var/lib/docker/vfs/dir/79d22ddf7a12b6e283c74df521289adb6b537883686eb43aa3c2405f0c6aacae/date.j
> address@hidden:/# cat /data/date.j => Mon Jul 20 09:08:33 EDT 2015
> ** http://container-solutions.com/understanding-volumes-docker/ "Quite
> simply, volumes are directories (or files) that are outside of the default
> Union File System and exist as normal directories and files on the host
> filesystem."
> In order to be able to save (persist) data and share data between
> containers, Docker came up with the concept of volumes:
> Quite simply, volumes are directories (or files) that are outside of the
> default Union File System and exist as normal directories and files on the
> host filesystem.
> There are two ways to initialise volumes, with some subtle differences that
> are important to understand. We can declare a volume at run-time with the
> -v flag:
>
> $ docker run -it --name container-test -h CONTAINER -v /data debian
> /bin/bash
>
> address@hidden:/# ls /data
> address@hidden:/#
> This will make the directory /data inside the container live outside the
> Union File System and directly accessible on the host.
> *** Trying this but fails--may have to do before booting the container?:
> docker run -v /home/b/data55:/data55 debian ls /data55
> ** Can also give access to a "volume" that is available in one container to
> another
> *** Can't you use FUSE with a container!?
> ** "you can also mount a directory from your own host into a container:"
> $ sudo docker run -d -P --name web -v /src/webapp:/opt/webapp
> training/webapp python app.py
> *** The above will mount the local directory, /src/webapp, into the
> container as the /opt/webapp directory. This is very useful for testing;
> for example,
> we can mount our source code inside the container and see our application
> at work as we change the source code!
> **** But with UNIONFS and AUFS this functionality has been available for
> many years.
> ** To test docker install
> docker search debian
> docker pull debian
> docker run -i -t debian /bin/bash
> *** And/or
> docker pull ubuntu
> docker run -i -t ubuntu /bin/bash
> * Yet another emacs in a docker(which I've done successfully--see
> above--but this is "dmacs"): [[https://github.com/bcbcarl/docker-emacs]]
> docker pull bcbcarl/emacs
> sudo curl -L
> https://raw.githubusercontent.com/bcbcarl/docker-emacs/master/bin/dmacs -o
> /usr/local/bin/dmacs
> sudo chmod +x /usr/local/bin/dmacs
> * This didn't quite work but very interestin'--nic the elnode man Nic
> Ferrier at it again: https://github.com/nicferrier/emacs-in-a-docker
> *** This didn't work; but, here's his plan:
>
> This puts Emacs into a docker!
>
> I am sure this is going to be useful for tests and things like that.
>
> Subdirectories
>
> Since there are an immediate load of things you might do with Dockers (run
> a daemon, run a batch in various ways, etc...) I'll put subdirs here with
> usable Dockerfiles for doing those things.
>
> emacsd
>
> A docker with an Emacs daemon in it.
>
> $ sudo docker.io run -d -v $(realpath sockets):/tmp/emacs1000
> nicferrier/emacsd
> $ emacsclient -s sockets/sock/server -e  '(+ 1 1)'
>
> * Other Emacs Dockerfiles
>
> Elnode has a few Dockerfiles to allow quick deployment. So far I've based
> all the Emacs Dockerfiles I've built on emacsd.
> ** Other sites:
> https://github.com/nicferrier/emacs-lxc/blob/master/lxc.el
> https://github.com/nicferrier
> https://www.youtube.com/watch?v=eTeKDStj30Y
> https://www.google.com/webhp?sourceid=chrome-instant&ion=1&espv=2&ie=UTF-8#q=nic%20ferrier%20emacs%20container
> http://emacswiki.org/emacs/NicFerrier
> https://libraries.io/github/nicferrier/emacs-lxc
> http://nic.ferrier.me.uk/blog/2013_08/the-emacs-tapas
> https://github.com/nicferrier/docker-shell-deploy/blob/master/README.md
> http://www.emacswiki.org/emacs/TrampAndDocker
>
> * Docker Backups
>
> If you’re using a data-container, it’s pretty trivial to do a backup:
>
> $ docker run --rm --volumes-from dbdata -v $(pwd):/backup debian tar cvf
> /backup/backup.tar /var/lib/postgresql/data
>
> ** Above should create a tarball of everything in the volume (the official
> postgres Dockerfile defines a volume at /var/lib/postgresql/data).
>
> On Fri, Oct 30, 2015 at 3:57 PM, Matt Price <address@hidden> wrote:
>
>> I don't have any thoughts but would love to see what you ocme upwith.
>> Would be great not only for teaching but e.g. for pointing to a working
>> environment for research results.
>>
>> On Fri, Oct 30, 2015 at 12:13 PM, John Kitchin <address@hidden>
>> wrote:
>>
>>> Has anyone tried setting up a Docker with an Emacs and org-mode setup?
>>>
>>> I am looking for some kind of solution like this to use with some
>>> students. Any thoughts?
>>>
>>> Thanks,
>>>
>>> --
>>> Professor John Kitchin
>>> Doherty Hall A207F
>>> Department of Chemical Engineering
>>> Carnegie Mellon University
>>> Pittsburgh, PA 15213
>>> 412-268-7803
>>> @johnkitchin
>>> http://kitchingroup.cheme.cmu.edu
>>>
>>>
>>

--
Professor John Kitchin
Doherty Hall A207F
Department of Chemical Engineering
Carnegie Mellon University
Pittsburgh, PA 15213
412-268-7803
@johnkitchin
http://kitchingroup.cheme.cmu.edu



reply via email to

[Prev in Thread] Current Thread [Next in Thread]