ENTRYPOINT vs CMD https://www.ctl.io/developers/blog/post/dockerfile-entrypoint-vs-cmd/
https://hub.docker.com/r/geekduck/minidlna Dockerfile
FROM alpine:latest
MAINTAINER KAMO Yasuhiro <duck1218+github@gmail.com>
# install minidlna
RUN apk --no-cache add minidlna
# Add config file
ADD minidlna.conf /etc/minidlna.conf
EXPOSE 1900/udp
EXPOSE 8200
ENTRYPOINT [ "/usr/sbin/minidlnad", "-S" ]
Hier die Datei minidlna.conf
#media_dir=/var/lib/minidlna
media_dir=V,/opt/unseen
media_dir=V,/opt/Movies
#media_dir=V,/opt/Zombie
#media_dir=V,/opt/Serien
#media_dir=V,/.share/Filme/Filme
media_dir=V,/opt/Filme
#media_dir=A,/.share/Musik
#media_dir=P,/.share/Fotos/fotos
media_dir=V,/opt/Collections
#media_dir=A,/.share/audiobooks
port=8200
# URL presented to clients (e.g. http://example.com:80).
#presentation_url=/
# Name that the DLNA server presents to clients.
# Defaults to "hostname: username".
friendly_name=oasis
# Serial number the server reports to clients.
# Defaults to 00000000.
serial=681019810597110
inotify=yes
# List of file names to look for when searching for album art.
# Names should be delimited with a forward slash ("/").
# This option can be specified more than once.
album_art_names=Cover.jpg/cover.jpg/AlbumArtSmall.jpg/albumartsmall.jpg
album_art_names=AlbumArt.jpg/albumart.jpg/Album.jpg/album.jpg
album_art_names=Folder.jpg/folder.jpg/Thumb.jpg/thumb.jpg
Aufruf zum Bau des Images
docker build --network host -t minidlna .
Aufruf zum Bau des Containers
docker run -d --name minidlna --net=host -p 8200:8200 -p 1900:1900/udp -v /share/external/DEV3304_1/unseen/:/opt/unseen -v /share/external/DEV3301_1/Filme/:/opt/Filme -v /share/external/DEV3305_1/:/opt/Movies -v /share/Collections/:/opt/Collections minidlna
Um minidlnad seine Database neu bauen zu lassen, wechselt man in den Container (über Containterstation/Terminal) und killt den Prozess mit
killall minidlnad
https://hub.docker.com/r/jlesage/jdownloader-2
opkg install git
opkg install git-http
git clone https://github.com/jlesage/docker-jdownloader-2.git
cd docker-jdownloader-2/
docker build --network host -t jdownloader .
docker run -d --name=jdownloader -p 5800:5800 -v /share/CACHEDEV3_DATA/Container/container-station-data/lib/docker/volumes/843eb1ef1d4e328ecc3610fc9c899b9cb81eeb3b83a4084f38a9b3921c006db2/_data:/config:rw -v /share/CACHEDEV3_DATA/Container/container-station-data/lib/docker/volumes/f1b22ae234148bc0e1783f58b36e1a180507d2b2095e560686555d25e22299f3/_data:/output:rw -v /share/external/DEV3304_1/unseen/:/opt/unseen jdownloader
Die Pfade zu den Containern waren vorher schon durch andere Jdownloader-Installationen angelget, die allerdings keine Host-Volume auf unseen hatten
FROM ubuntu:latest
MAINTAINER Daniel Bachfeld <daniel@bachfeld.com>
# install minidlna
RUN apt-get update && apt-get install -y python3.6 python3-pip
RUN pip3 install httpserver
RUN pip3 install markdown
RUN pip3 install pygments
RUN pip3 install jinja2
COPY files /var/www/
COPY entrypoint.sh /entrypoint.sh
EXPOSE 80
EXPOSE 443
WORKDIR /var/www
ENTRYPOINT ["python3","oasis_ssl6.py"]
docker build --network host -t md2web .
docker run -d --name md2web md2web
FROM ros:melodic-ros-base
RUN apt-get update && apt-get install -y \
python-pip \
avahi-daemon \
openssh-server \
python-setuptools \
python-dev \
build-essential \
nano
RUN echo "export ROS_HOSTNAME=192.168.2.120" >> /root/.bashrc
RUN echo "export ROS_MASTER_URI=http://192.168.2.120:11311" >> /root/.bashrc
docker build --network host -t ros-master .
docker run -d --net host --name master ros-master roscore
Docker inotify fdfdf
Dropbox liegt unter /share/external/.cm/0/2113c244c9b65f98d23c6cc0e031b74cec53dfae/
FROM ubuntu:latest
MAINTAINER Daniel Bachfeld <daniel@bachfeld.com>
RUN apt-get update && apt-get install -y python3.6 python3-pip
RUN pip3 install httpserver
RUN pip3 install markdown
RUN pip3 install pygments
RUN pip3 install jinja2
EXPOSE 80
EXPOSE 443
WORKDIR /var/www
ENTRYPOINT ["python3","oasis_ssl.py"]
alles von Dropbox nach /web kopieren
docker build --network host -t md2web_share .
Das definieren von Host Volumes funktioniert zwar, um Dropbox in den Container einzublenden, allerdings macht Container Station diese Konfiguration kaputt, wenn man die Netzwerkeinstellungen nachträglich ändern, Den Pfad zur Dropbox kann man aber nicht über Container Station vorgeben, sondern nur über die Kommandozeile.
In der Containerstation definiert man
/var/www -> /share/Web
Ubuntu 18.04 in Docker Container auf dem Pi mit LXDE Zugriff per VNC
Docker auf dem Pi
apt-get update
apt-get upgrade
apt-get install git
curl -fsSL test.docker.com -o get-docker.sh && sh get-docker.sh
FROM ubuntu:18.04
RUN \
apt-get update && \
DEBIAN_FRONTEND=noninteractive apt-get install -y lxde-core lxterminal tightvncserver firefox nano && \
rm -rf /var/lib/apt/lists/*
# INSTALL ROS Melodic
RUN sh -c 'echo "deb http://packages.ros.org/ros/ubuntu $(lsb_release -sc) main" > /etc/apt/sources.list.d/ros-latest.list'
RUN apt-key adv --keyserver 'hkp://keyserver.ubuntu.com:80' --recv-key C1CF6E31E6BADE8868B172B4F42ED6FBAB17C654
RUN apt update
RUN apt install -y ros-melodic-desktop-full
RUN echo "source /opt/ros/melodic/setup.bash" >> ~/.bashrc
RUN sudo apt install -y python-rosdep python-rosinstall python-rosinstall-generator python-wstool build-essential
# files for VNC
RUN touch /root/.Xresources
RUN touch /root/.Xauthority
WORKDIR /root
RUN mkdir .vnc
# COPY xstartup with start for lxde
COPY xstartup /root/.vnc/
RUN echo "export USER=root" >> /root/.bashrc
ENV USER root
# COPY script. removes Lock files and start tightvncserver
COPY entrypoint.sh /entrypoint.sh
# set password
RUN printf "maketest\nmaketest\nn\n" | vncpasswd
ENTRYPOINT ["/entrypoint.sh" ]
Das Image baut man mit dem Befehl
docker build -t ros-melodic-vnc --network host .
docker run -v /dev:/dev --privileged -d --net=host ros-melodic-vnc
Auf dem Pi muss man offenbar für den Build-Prozess als Netzwerk den Host angeben. Andernfalls stürzt das Netzwerk des Hosts ab.