14.01.2018

Docker-CE: How to modify containers with overlays / How to add directories to a standard docker image

After some experiments with docker i wanted to run a tomcat with my own configuration (e.g. memory settings, ports, ...).


My first idea was: Download tomcat, configure everything and then build an image.
BUT: After i learned how to use the -v (--volume) flag for adding some file via the docker command to an image i was wondering, wether creating a new image with only the additional files on top of standard tomcat docker image.

So first step is to take a look at all local images:
# docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
558MB
friendlyhello       latest              976ee2bb47bf        3 days ago          148MB
tomcat              latest              11df4b40749f        8 days ago          558MB
I can use tomcat:latest. (if it is not there just pull it: docker pull tomcat)
Next step is to create a directory and add all the directories which you want to override.
For my example:
mkdir conftomcat
cd conftomcat
mkdir bin
Into the bin directory i put all the files from the tomcat standard container:
# ls bin
bootstrap.jar  catalina-tasks.xml  commons-daemon-native.tar.gz  daemon.sh  setclasspath.sh  startup.sh       tool-wrapper.sh
catalina.sh    commons-daemon.jar  configtest.sh                 digest.sh  shutdown.sh      tomcat-juli.jar  version.sh

Inside the catalina.sh i added -Xmx384M.
In conftomcat i created the following Dockerfile:
FROM tomcat:latest
WORKDIR /usr/local/tomcat/bin
ADD status /usr/local/tomcat/webapps/mystatus
ADD bin /usr/local/tomcat/bin
ENTRYPOINT [ "/usr/local/tomcat/bin/catalina.sh" ]
CMD [ "run"]
And as you can see i added my index.jsp which is inside status (s. this posting).
Ok. Let's see, if my plan works:
#docker build  -t  mytomcat .
ending build context to Docker daemon  375.8kB
Step 1/6 : FROM tomcat:latest
 ---> 11df4b40749f
Step 2/6 : WORKDIR /usr/local/tomcat/bin
 ---> Using cache
 ---> 5696a9ab99cb
Step 3/6 : ADD status /usr/local/tomcat/webapps/mystatus
 ---> 1bceea5af515
Step 4/6 : ADD bin /usr/local/tomcat/bin
 ---> e8d3a386a7f0
Step 5/6 : ENTRYPOINT [ "/usr/local/tomcat/bin/catalina.sh" ]
 ---> Running in a04038032bb7
Removing intermediate container a04038032bb7
 ---> 4c8fda05df18
Step 6/6 : CMD [ "run"]
 ---> Running in cce378648e7a
Removing intermediate container cce378648e7a
 ---> 72ecfe2aa4a7
Successfully built 72ecfe2aa4a7
Successfully tagged mytomcat:latest
and then start:
docker run -p 4001:8080 mytomcat
Let's check the memory settings:
$ ps aux|grep java
root      2313 20.7  8.0 2418472 81236 ?       Ssl  19:51   0:02 /docker-java-home/jre/bin/java -Djava.util.logging.config.file=/usr/local/tomcat/conf/logging.properties -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager -Xmx394M -Djdk.tls.ephemeralDHKeySize=2048 -Djava.protocol.handler.pkgs=org.apache.catalina.webresources -classpath /usr/local/tomcat/bin/bootstrap.jar:/usr/local/tomcat/bin/tomcat-juli.jar -Dcatalina.base=/usr/local/tomcat -Dcatalina.home=/usr/local/tomcat -Djava.io.tmpdir=/usr/local/tomcat/temp org.apache.catalina.startup.Bootstrap start
Yes - changed to 384M.
And check the jsp:



Yippie!
As you can see, i have the standard tomcat running with an override inside the configuration to 384M. So it should be easy to add certificates, WARs, ... to such a standard container.

13.01.2018

Ubuntu Intel Spectre/Meltdown update

One week after the rumors about Spectre and Meltdown (s. Project Zero Blog) my Ubuntu 17.10 got the Intel microcode patch:


root@zerberus:~# apt-get upgrade
Paketlisten werden gelesen... Fertig
Abhängigkeitsbaum wird aufgebaut.      
Statusinformationen werden eingelesen.... Fertig
Paketaktualisierung (Upgrade) wird berechnet... Fertig
Die folgenden Pakete wurden automatisch installiert und werden nicht mehr benötigt:
  linux-headers-4.13.0-17 linux-headers-4.13.0-17-generic
  linux-image-4.13.0-17-generic linux-image-extra-4.13.0-17-generic
Verwenden Sie »apt autoremove«, um sie zu entfernen.
Die folgenden Pakete sind zurückgehalten worden:
  linux-generic linux-headers-generic linux-image-generic
Die folgenden Pakete werden aktualisiert (Upgrade):
  gir1.2-javascriptcoregtk-4.0 gir1.2-poppler-0.18 gir1.2-webkit2-4.0
  intel-microcode libjavascriptcoregtk-4.0-18 libpoppler-glib8 libpoppler68
  libruby2.3 libwebkit2gtk-4.0-37 libwebkit2gtk-4.0-37-gtk2 linux-libc-dev
  poppler-utils ruby2.3
13 aktualisiert, 0 neu installiert, 0 zu entfernen und 3 nicht aktualisiert.
Es müssen 30,5 MB an Archiven heruntergeladen werden.
Nach dieser Operation werden 321 kB Plattenplatz zusätzlich benutzt.
Möchten Sie fortfahren? [J/n]

Holen:1 http://de.archive.ubuntu.com/ubuntu artful-updates/universe amd64 libwebkit2gtk-4.0-37-gtk2 amd64 2.18.5-0ubuntu0.17.10.1 [9.026 kB]
Holen:2 http://de.archive.ubuntu.com/ubuntu artful-updates/main amd64 libwebkit2gtk-4.0-37 amd64 2.18.5-0ubuntu0.17.10.1 [11,2 MB]                                                      
Holen:3 http://de.archive.ubuntu.com/ubuntu artful-updates/main amd64 libjavascriptcoregtk-4.0-18 amd64 2.18.5-0ubuntu0.17.10.1 [4.052 kB]                                              
Holen:4 http://de.archive.ubuntu.com/ubuntu artful-updates/main amd64 gir1.2-webkit2-4.0 amd64 2.18.5-0ubuntu0.17.10.1 [67,6 kB]                                                        
Holen:5 http://de.archive.ubuntu.com/ubuntu artful-updates/main amd64 gir1.2-javascriptcoregtk-4.0 amd64 2.18.5-0ubuntu0.17.10.1 [21,0 kB]                                              
Holen:6 http://de.archive.ubuntu.com/ubuntu artful-updates/main amd64 poppler-utils amd64 0.57.0-2ubuntu4.2 [141 kB]                                                                    
Holen:7 http://de.archive.ubuntu.com/ubuntu artful-updates/main amd64 libpoppler-glib8 amd64 0.57.0-2ubuntu4.2 [108 kB]                                                                 
Holen:8 http://de.archive.ubuntu.com/ubuntu artful-updates/main amd64 libpoppler68 amd64 0.57.0-2ubuntu4.2 [787 kB]                                                                     
Holen:9 http://de.archive.ubuntu.com/ubuntu artful-updates/main amd64 gir1.2-poppler-0.18 amd64 0.57.0-2ubuntu4.2 [18,4 kB]                                                             
Holen:10 http://de.archive.ubuntu.com/ubuntu artful-updates/main amd64 linux-libc-dev amd64 4.13.0-25.29 [963 kB]                                                                       
Holen:11 http://de.archive.ubuntu.com/ubuntu artful-updates/main amd64 intel-microcode amd64 3.20180108.0~ubuntu17.10.1 [1.090 kB]                                                       Holen:12 http://de.archive.ubuntu.com/ubuntu artful-updates/main amd64 libruby2.3 amd64 2.3.3-1ubuntu1.2 [2.972 kB]                                                                     
Holen:13 http://de.archive.ubuntu.com/ubuntu artful-updates/main amd64 ruby2.3 amd64 2.3.3-1ubuntu1.2 [41,0 kB]                                                                         
Es wurden 30,5 MB in 25 s geholt (1.186 kB/s).                                                                                                                                          
(Lese Datenbank ... 391417 Dateien und Verzeichnisse sind derzeit installiert.)
Vorbereitung zum Entpacken von .../00-libwebkit2gtk-4.0-37-gtk2_2.18.5-0ubuntu0.17.10.1_amd64.deb ...
Entpacken von libwebkit2gtk-4.0-37-gtk2:amd64 (2.18.5-0ubuntu0.17.10.1) über (2.18.4-0ubuntu0.17.10.1) ...
Vorbereitung zum Entpacken von .../01-libwebkit2gtk-4.0-37_2.18.5-0ubuntu0.17.10.1_amd64.deb ...
Entpacken von libwebkit2gtk-4.0-37:amd64 (2.18.5-0ubuntu0.17.10.1) über (2.18.4-0ubuntu0.17.10.1) ...
Vorbereitung zum Entpacken von .../02-libjavascriptcoregtk-4.0-18_2.18.5-0ubuntu0.17.10.1_amd64.deb ...
Entpacken von libjavascriptcoregtk-4.0-18:amd64 (2.18.5-0ubuntu0.17.10.1) über (2.18.4-0ubuntu0.17.10.1) ...
Vorbereitung zum Entpacken von .../03-gir1.2-webkit2-4.0_2.18.5-0ubuntu0.17.10.1_amd64.deb ...
Entpacken von gir1.2-webkit2-4.0:amd64 (2.18.5-0ubuntu0.17.10.1) über (2.18.4-0ubuntu0.17.10.1) ...
Vorbereitung zum Entpacken von .../04-gir1.2-javascriptcoregtk-4.0_2.18.5-0ubuntu0.17.10.1_amd64.deb ...
Entpacken von gir1.2-javascriptcoregtk-4.0:amd64 (2.18.5-0ubuntu0.17.10.1) über (2.18.4-0ubuntu0.17.10.1) ...
Vorbereitung zum Entpacken von .../05-poppler-utils_0.57.0-2ubuntu4.2_amd64.deb ...
Entpacken von poppler-utils (0.57.0-2ubuntu4.2) über (0.57.0-2ubuntu4.1) ...
Vorbereitung zum Entpacken von .../06-libpoppler-glib8_0.57.0-2ubuntu4.2_amd64.deb ...
Entpacken von libpoppler-glib8:amd64 (0.57.0-2ubuntu4.2) über (0.57.0-2ubuntu4.1) ...
Vorbereitung zum Entpacken von .../07-libpoppler68_0.57.0-2ubuntu4.2_amd64.deb ...
Entpacken von libpoppler68:amd64 (0.57.0-2ubuntu4.2) über (0.57.0-2ubuntu4.1) ...
Vorbereitung zum Entpacken von .../08-gir1.2-poppler-0.18_0.57.0-2ubuntu4.2_amd64.deb ...
Entpacken von gir1.2-poppler-0.18:amd64 (0.57.0-2ubuntu4.2) über (0.57.0-2ubuntu4.1) ...
Vorbereitung zum Entpacken von .../09-linux-libc-dev_4.13.0-25.29_amd64.deb ...
Entpacken von linux-libc-dev:amd64 (4.13.0-25.29) über (4.13.0-21.24) ...
Vorbereitung zum Entpacken von .../10-intel-microcode_3.20180108.0~ubuntu17.10.1_amd64.deb ...
Entpacken von intel-microcode (3.20180108.0~ubuntu17.10.1) über (3.20170707.1) ...
Vorbereitung zum Entpacken von .../11-libruby2.3_2.3.3-1ubuntu1.2_amd64.deb ...
Entpacken von libruby2.3:amd64 (2.3.3-1ubuntu1.2) über (2.3.3-1ubuntu1.1) ...
Vorbereitung zum Entpacken von .../12-ruby2.3_2.3.3-1ubuntu1.2_amd64.deb ...
Entpacken von ruby2.3 (2.3.3-1ubuntu1.2) über (2.3.3-1ubuntu1.1) ...
intel-microcode (3.20180108.0~ubuntu17.10.1) wird eingerichtet ...update-initramfs: deferring update (trigger activated)
intel-microcode: microcode will be updated at next boot
linux-libc-dev:amd64 (4.13.0-25.29) wird eingerichtet ...
gir1.2-javascriptcoregtk-4.0:amd64 (2.18.5-0ubuntu0.17.10.1) wird eingerichtet ...
Trigger für libc-bin (2.26-0ubuntu2) werden verarbeitet ...
Trigger für man-db (2.7.6.1-2) werden verarbeitet ...
libjavascriptcoregtk-4.0-18:amd64 (2.18.5-0ubuntu0.17.10.1) wird eingerichtet ...
libruby2.3:amd64 (2.3.3-1ubuntu1.2) wird eingerichtet ...
libpoppler68:amd64 (0.57.0-2ubuntu4.2) wird eingerichtet ...
libpoppler-glib8:amd64 (0.57.0-2ubuntu4.2) wird eingerichtet ...
poppler-utils (0.57.0-2ubuntu4.2) wird eingerichtet ...
libwebkit2gtk-4.0-37:amd64 (2.18.5-0ubuntu0.17.10.1) wird eingerichtet ...
libwebkit2gtk-4.0-37-gtk2:amd64 (2.18.5-0ubuntu0.17.10.1) wird eingerichtet ...
gir1.2-poppler-0.18:amd64 (0.57.0-2ubuntu4.2) wird eingerichtet ...
ruby2.3 (2.3.3-1ubuntu1.2) wird eingerichtet ...
gir1.2-webkit2-4.0:amd64 (2.18.5-0ubuntu0.17.10.1) wird eingerichtet ...
Trigger für initramfs-tools (0.125ubuntu12) werden verarbeitet ...
update-initramfs: Generating /boot/initrd.img-4.13.0-21-generic
Trigger für libc-bin (2.26-0ubuntu2) werden verarbeitet ...


So note the "intel-microcode" package, which states:
intel-microcode: microcode will be updated at next boot

And after the reboot:
schroff@zerberus:~$ dmesg | grep microcode
[    0.000000] microcode: microcode updated early to revision 0xc2, date = 2017-11-16
[    1.400728] microcode: sig=0x406e3, pf=0x40, revision=0xc2
[    1.401060] microcode: Microcode Update Driver: v2.2.

10.01.2018

Oracle SOA Suite: Installating the Fusion Middleware Infrastructure

After setting up the database (installation, instance setup) and the SOA Suite repository (via rcu) the next step is to install the Oracle Weblogic Infrastructure.

The software can be downloaded here:

(You have to choose "Fusion Middleware Infrastructure Installer)

The unzip the downloaded zip:
 fmw_12.2.1.3.0_infrastructure_Disk1_1of1.zip
and run it: 
java -d64 -jar fmw_12.2.1.3.0_infrastructure.jar
Because the Oracle documentation does not contain pictures of the installer, here the screenshots:










Next step is to run the config.sh to configure the Application server domain.