mirror of
https://github.com/moby/moby.git
synced 2022-11-09 12:21:53 -05:00
Merge pull request #4010 from tianon/iceweasel
Swap Firefox to Iceweasel so that the Desktop Integration example is simplified and easier to understand
This commit is contained in:
commit
23aec9d7fc
4 changed files with 52 additions and 60 deletions
|
@ -8,4 +8,4 @@ Examples
|
||||||
========
|
========
|
||||||
|
|
||||||
* Data container: ./data/Dockerfile creates a data image sharing /data volume
|
* Data container: ./data/Dockerfile creates a data image sharing /data volume
|
||||||
* Firefox: ./firefox/Dockerfile shows a way to dockerize a common multimedia application
|
* Iceweasel: ./iceweasel/Dockerfile shows a way to dockerize a common multimedia application
|
|
@ -11,28 +11,28 @@
|
||||||
# # Build data image
|
# # Build data image
|
||||||
# docker build -t data -rm .
|
# docker build -t data -rm .
|
||||||
#
|
#
|
||||||
# # Create a data container. (eg: firefox-data)
|
# # Create a data container. (eg: iceweasel-data)
|
||||||
# docker run -name firefox-data data true
|
# docker run -name iceweasel-data data true
|
||||||
#
|
#
|
||||||
# # List data from it
|
# # List data from it
|
||||||
# docker run -volumes-from firefox-data busybox ls -al /data
|
# docker run -volumes-from iceweasel-data busybox ls -al /data
|
||||||
|
|
||||||
docker-version 0.6.5
|
docker-version 0.6.5
|
||||||
|
|
||||||
# Smallest base image, just to launch a container
|
# Smallest base image, just to launch a container
|
||||||
from busybox
|
FROM busybox
|
||||||
maintainer Daniel Mizyrycki <daniel@docker.com>
|
MAINTAINER Daniel Mizyrycki <daniel@docker.com>
|
||||||
|
|
||||||
# Create a regular user
|
# Create a regular user
|
||||||
run echo 'sysadmin:x:1000:1000::/data:/bin/sh' >> /etc/passwd
|
RUN echo 'sysadmin:x:1000:1000::/data:/bin/sh' >> /etc/passwd
|
||||||
run echo 'sysadmin:x:1000:' >> /etc/group
|
RUN echo 'sysadmin:x:1000:' >> /etc/group
|
||||||
|
|
||||||
# Create directory for that user
|
# Create directory for that user
|
||||||
run mkdir /data
|
RUN mkdir /data
|
||||||
run chown sysadmin.sysadmin /data
|
RUN chown sysadmin.sysadmin /data
|
||||||
|
|
||||||
# Add content to /data. This will keep sysadmin ownership
|
# Add content to /data. This will keep sysadmin ownership
|
||||||
run touch /data/init_volume
|
RUN touch /data/init_volume
|
||||||
|
|
||||||
# Create /data volume
|
# Create /data volume
|
||||||
VOLUME /data
|
VOLUME /data
|
||||||
|
|
|
@ -1,49 +0,0 @@
|
||||||
# VERSION: 0.7
|
|
||||||
# DESCRIPTION: Create firefox container with its dependencies
|
|
||||||
# AUTHOR: Daniel Mizyrycki <daniel@dotcloud.com>
|
|
||||||
# COMMENTS:
|
|
||||||
# This file describes how to build a Firefox container with all
|
|
||||||
# dependencies installed. It uses native X11 unix socket and alsa
|
|
||||||
# sound devices. Tested on Debian 7.2
|
|
||||||
# USAGE:
|
|
||||||
# # Download Firefox Dockerfile
|
|
||||||
# wget http://raw.github.com/dotcloud/docker/master/contrib/desktop-integration/firefox/Dockerfile
|
|
||||||
#
|
|
||||||
# # Build firefox image
|
|
||||||
# docker build -t firefox -rm .
|
|
||||||
#
|
|
||||||
# # Run stateful data-on-host firefox. For ephemeral, remove -v /data/firefox:/data
|
|
||||||
# docker run -v /data/firefox:/data -v /tmp/.X11-unix:/tmp/.X11-unix \
|
|
||||||
# -v /dev/snd:/dev/snd -lxc-conf='lxc.cgroup.devices.allow = c 116:* rwm' \
|
|
||||||
# -e DISPLAY=unix$DISPLAY firefox
|
|
||||||
#
|
|
||||||
# # To run stateful dockerized data containers
|
|
||||||
# docker run -volumes-from firefox-data -v /tmp/.X11-unix:/tmp/.X11-unix \
|
|
||||||
# -v /dev/snd:/dev/snd -lxc-conf='lxc.cgroup.devices.allow = c 116:* rwm' \
|
|
||||||
# -e DISPLAY=unix$DISPLAY firefox
|
|
||||||
|
|
||||||
docker-version 0.6.5
|
|
||||||
|
|
||||||
# Base docker image
|
|
||||||
from tianon/debian:wheezy
|
|
||||||
maintainer Daniel Mizyrycki <daniel@docker.com>
|
|
||||||
|
|
||||||
# Install firefox dependencies
|
|
||||||
run echo "deb http://ftp.debian.org/debian/ wheezy main contrib" > /etc/apt/sources.list
|
|
||||||
run apt-get update
|
|
||||||
run DEBIAN_FRONTEND=noninteractive apt-get install -y libXrender1 libasound2 \
|
|
||||||
libdbus-glib-1-2 libgtk2.0-0 libpango1.0-0 libxt6 wget bzip2 sudo
|
|
||||||
|
|
||||||
# Install Firefox
|
|
||||||
run mkdir /application
|
|
||||||
run cd /application; wget -O - \
|
|
||||||
http://ftp.mozilla.org/pub/mozilla.org/firefox/releases/25.0/linux-x86_64/en-US/firefox-25.0.tar.bz2 | tar jx
|
|
||||||
|
|
||||||
# create sysadmin account
|
|
||||||
run useradd -m -d /data -p saIVpsc0EVTwA sysadmin
|
|
||||||
run sed -Ei 's/sudo:x:27:/sudo:x:27:sysadmin/' /etc/group
|
|
||||||
run sed -Ei 's/(\%sudo\s+ALL=\(ALL\:ALL\) )ALL/\1 NOPASSWD:ALL/' /etc/sudoers
|
|
||||||
|
|
||||||
# Autorun firefox. -no-remote is necessary to create a new container, as firefox
|
|
||||||
# appears to communicate with itself through X11.
|
|
||||||
cmd ["/bin/sh", "-c", "/usr/bin/sudo -u sysadmin -H -E /application/firefox/firefox -no-remote"]
|
|
41
contrib/desktop-integration/iceweasel/Dockerfile
Normal file
41
contrib/desktop-integration/iceweasel/Dockerfile
Normal file
|
@ -0,0 +1,41 @@
|
||||||
|
# VERSION: 0.7
|
||||||
|
# DESCRIPTION: Create iceweasel container with its dependencies
|
||||||
|
# AUTHOR: Daniel Mizyrycki <daniel@dotcloud.com>
|
||||||
|
# COMMENTS:
|
||||||
|
# This file describes how to build a Iceweasel container with all
|
||||||
|
# dependencies installed. It uses native X11 unix socket and alsa
|
||||||
|
# sound devices. Tested on Debian 7.2
|
||||||
|
# USAGE:
|
||||||
|
# # Download Iceweasel Dockerfile
|
||||||
|
# wget http://raw.github.com/dotcloud/docker/master/contrib/desktop-integration/iceweasel/Dockerfile
|
||||||
|
#
|
||||||
|
# # Build iceweasel image
|
||||||
|
# docker build -t iceweasel -rm .
|
||||||
|
#
|
||||||
|
# # Run stateful data-on-host iceweasel. For ephemeral, remove -v /data/iceweasel:/data
|
||||||
|
# docker run -v /data/iceweasel:/data -v /tmp/.X11-unix:/tmp/.X11-unix \
|
||||||
|
# -v /dev/snd:/dev/snd -lxc-conf='lxc.cgroup.devices.allow = c 116:* rwm' \
|
||||||
|
# -e DISPLAY=unix$DISPLAY iceweasel
|
||||||
|
#
|
||||||
|
# # To run stateful dockerized data containers
|
||||||
|
# docker run -volumes-from iceweasel-data -v /tmp/.X11-unix:/tmp/.X11-unix \
|
||||||
|
# -v /dev/snd:/dev/snd -lxc-conf='lxc.cgroup.devices.allow = c 116:* rwm' \
|
||||||
|
# -e DISPLAY=unix$DISPLAY iceweasel
|
||||||
|
|
||||||
|
docker-version 0.6.5
|
||||||
|
|
||||||
|
# Base docker image
|
||||||
|
FROM debian:wheezy
|
||||||
|
MAINTAINER Daniel Mizyrycki <daniel@docker.com>
|
||||||
|
|
||||||
|
# Install Iceweasel and "sudo"
|
||||||
|
RUN apt-get update && DEBIAN_FRONTEND=noninteractive apt-get install -yq iceweasel sudo
|
||||||
|
|
||||||
|
# create sysadmin account
|
||||||
|
RUN useradd -m -d /data -p saIVpsc0EVTwA sysadmin
|
||||||
|
RUN sed -Ei 's/sudo:x:27:/sudo:x:27:sysadmin/' /etc/group
|
||||||
|
RUN sed -Ei 's/(\%sudo\s+ALL=\(ALL\:ALL\) )ALL/\1 NOPASSWD:ALL/' /etc/sudoers
|
||||||
|
|
||||||
|
# Autorun iceweasel. -no-remote is necessary to create a new container, as
|
||||||
|
# iceweasel appears to communicate with itself through X11.
|
||||||
|
CMD ["/usr/bin/sudo", "-u", "sysadmin", "-H", "-E", "/usr/bin/iceweasel", "-no-remote"]
|
Loading…
Reference in a new issue