Flexible Patching Concept for Optimized WebLogic Image on Docker

In the last days I was publishing my Optimized WebLogic Image on Docker Solution, see following links:

The previous version of my Optimized WebLogic Image was based on fixed patch numbers, so not really flexible.

My latest update contains now the possibility to apply during the Image build multiple WebLogic Patches, just the OPatch Patch 28186730 is mandatory.

The latest sources you can find under my GitHub (more...)

Your very own development environment

Everyone should have their own local development environment. No matter if you write Java and that just means IDE and JDG, or if you work with databases. Not having it reduces your learning a lot. I have yet to meet a really sharp database expert who does not have a local personal environment. It also goes the other way around, you can usually guess if a person has it or not.

Yes, you can get (more...)

Updated Version of Optimized WebLogic Image on Docker

Yesterday I published my solution for an optimized WebLogic Image on Docker (https://dirknachbar.blogspot.com/2019/05/optimized-weblogic-image-on-docker.html). The yesterdays version was limited to the usage of Oracle Server JRE 8u152, due to an Oracle Bug 27117282.

So I updated my Optimized Solution, that you can integrate the necessary patches (Patch for OPatch Util and the latest CPU April 2019 for WebLogic 12.2.1.3.0), in order that you are able to use (more...)

Optimized WebLogic Image on Docker

As I am currently busy with optimizing Docker Images for Oracle stuff, I want to share with you my latest optimization for Oracle WebLogic Server 12.2.1.3.0 as Docker Image.

Under the Oracle GitHub Repository https://github.com/oracle/docker-images/tree/master/OracleWebLogic you can find all necessary files to build a Docker Image for Oracle WebLogic 12.2.1.x, which are quite useful, but the disadvantage of this image is the size. The Docker Image will (more...)

Using ElasticSearch, Fluentd and Kibana (for log aggregation)

In my last article I describe how I installed ElasticSearch, Fluentd and Kibana (EFK).
[https://technology.amis.nl/2019/04/23/using-vagrant-and-shell-scripts-to-further-automate-setting-up-my-demo-environment-from-scratch-including-elasticsearch-fluentd-and-kibana-efk-within-minikube/]

In this article I will dive into using ElasticSearch, Fluentd and Kibana. Besides log aggregation (getting log information available at a centralized location), I will also describe how I created some visualizations within a dashboard.

Kibana 7.0 has a new sleek design, streamlined navigation, and more for an extra delightful user experience.
[https://www.elastic.co/products/kibana]

Elasticsearch

Elasticsearch (more...)

WildFly 16 Docker Image with Oracle JDBC Driver

Today some a bit off-topic from my usual classic Oracle blogpost, but with a bit of Oracle :-)

As more and more of my customers are moving away from Oracle WebLogic Server to JBoss/WildFly, I have create a small Docker Image with WildFly 16 including the Oracle JDBC Driver and a DataSource based on the Oracle JDBC Driver (18.3).

The full showcase you can find in my GitHub Repository https://github.com/DirkNachbar/Docker/tree/master/WildFly

Simply clone the (more...)

Optimizing the Optimized Docker Image for Oracle XE 18c (18.4.0) including Archivelog

On 1st May 2019 I was publishing a solution on how to optimize the Docker image for Oracle XE 18c from 8.7 GB down to 5.41 GB (https://dirknachbar.blogspot.com/2019/05/optimized-docker-image-for-oracle-xe.html).

In the last 2 days I was playing a bit more with my optimized Docker image for Oracle XE 18c and I was able to downsize the Docker image once again to a current size of 4.02 GB. So (more...)

Optimized Docker Image for Oracle XE 18c (18.4.0) including Archivelog

In my current project I am mainly working with Oracle XE 18c (18.4.0) under Docker.

One pain point is size of the Docker Image for Oracle XE 18c, in case you will use the Scripts from https://github.com/oracle/docker-images/tree/master/OracleDatabase/SingleInstance for the build of Oracle XE 18c you will have an image size of 8.7 GB, which is not quite handy :-)

So I invested some time and have done some modifications on the (more...)

Using Vagrant and shell scripts to further automate setting up my demo environment from scratch, including ElasticSearch, Fluentd and Kibana (EFK) within Minikube

For training and demo purposes, on my windows laptop, I needed an environment with a guest Operating System, Docker and Minikube available within an Oracle VirtualBox appliance.

So, in a series of articles up till now, I described the following:

Running GoldenGate Installers within Docker containers on MacOS

Over the last few days, I’ve been trying to improve the speed at which I can setup and configure Oracle GoldenGate for testing purposes. What I settled on what setting up a Docker container to be a VM subsistute. Besides I’ve been playing with Docker, off and on, for over a year now; yet I’m finally investing the time to drive this forward.

One of the items I’ve been trying to solve is “how do (more...)

6 tips to make your life with Vagrant even better!

HashiCorp Vagrant is a great tool to quickly get up and running with a development environment. In this blog post I’ll give some tips to make your life with Vagrant even better! You can find an example which uses these tips here.

Tip 1: The disksize plugin

Ever created a VM with a specific size for the disk and after using it for a while, you find out you would have liked to have a (more...)

Docker with Oracle database: install patches automatically

Recently I had to install the patch for fixing cross-platform PDB transport bug onto the docker images with Oracle, so these are easy way how to do it:

1. create directory “patches” and create “install_patches.sh”:

#!/bin/bash

unzip  -u ./*.zip
CURDIR=`pwd`

for D in *; do
    if [ -d "${D}" ]; then
        echo =================================================
        echo " *** Processing patch # ${D}... "   # your processing here
        cd "${D}"
        opatch apply -silent
    fi
    cd  (more...)

Docker summary

Today just a summary posting of all my docker activities:

How to use node-red to interact with twitter

Recently I had to setup an application that was able to read twitter and, based on some predefined keywords,  had to reply to specific tweets. I decided to have a look at node-red to set this stuff up. It proofed to be rather straightforward and easy to implement. The hardest part was to get approval for a twitter developer account. In this post I describe how I used node-red and how I

Docker on Oracle Linux

It occurred to me that if you want to start using Docker there are plenty examples that use Ubuntu as a base platform. I read a book called Learning Docker that assumes Ubuntu for the examples. I know I am quite stubborn, a "know-it-better" person, but I want to be able to do the same on Oracle Linux.

Docker on Oracle Linux turns out not too complicated. But I ran in to a caveat that (more...)

Docker: Networking with docker swarm: creating new subnets/gateways/…

In this posting i explained how to configure the network for a container on a docker machine.
If you want to do this for a docker swarm, you have to change the commands. The network driver "bridge" does not work in swarm mode:
(How to run a container inside a swarm take a look here)

docker service create  --network mybrigde --name helloworld alpine ping 192.168.178.1

Error: No such network: mybrigde
Even (more...)

Docker: Network configuration: How to customize the network bridge and use my own subnet / netmask / CiDR

In my last posting i described how to configure the network settings of a container via docker command line:
--net none
--net bridge
Now i want to try to change the subnet from the standard 172.17.0.0/16 to another ip range.

There are some tutorials out there which say:

docker run -it  --net bridge  --fixed-cidr "10.100.0.0/24"  alpine /bin/ash
unknown flag: --fixed-cidr
but this doesa not work any more.

First you (more...)

Docker: Network configuration – none / brigde / hostname / dns entries

If you are starting your docker container you can add some network configuration details via command line.
Let's start with the easiest network setting:
docker run -it  --net none alpine /bin/ash
This setting starts the container without any connectivity to the network:
# ip addr show
1: lo: mtu 65536 qdisc noqueue state UNKNOWN qlen 1
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
(more...)

Docker: How to limit memory

By starting your container you can limit the RAM usage simply by adding
-m 4M

(this limits the memory to 4 megabytes).

To check this simply run:

docker run -it -m=4M  --rm alpine /bin/ash

and on your docker machine check the following entry:

alpine:~# cat /sys/fs/cgroup/memory/docker/4ce0403caf667e7a6d446eac3820373aefafe4e73463357f680d7b38a392ba62/memory.limit_in_bytes 
4194304


Docker: Lessons learned – Logging

After some time working with docker here my experiences:

Some days ago i created my own container with a minimal web service.

Here the ncweb.sh:
#!/bin/ash
sed -i  's/Hostname:.*/Hostname: '$HOSTNAME'/g' index.html
while true; do { echo -e 'HTTP/1.1 200 OK\r\n'; cat index.html;}  | nc  -l -p 8080  2>&1 >> logfile; done
This is the Dockerfile:
FROM alpine

WORKDIR /tmp

RUN mkdir ncweb

ADD .  /tmp

ENTRYPOINT [ "/tmp/ncweb.sh" (more...)