<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/"><channel><title>Docker on widerin</title><link>http://widerin.net/tags/docker/</link><description>Recent content in Docker on widerin</description><generator>Hugo</generator><language>en</language><lastBuildDate>Mon, 07 Sep 2026 18:30:36 +0200</lastBuildDate><atom:link href="http://widerin.net/tags/docker/index.xml" rel="self" type="application/rss+xml"/><item><title>Gitlab Security Products with Java and Gradle</title><link>http://widerin.net/posts/2020/gitlab-security-products-with-java-and-gradle/</link><pubDate>Sun, 08 Mar 2020 00:00:00 +0000</pubDate><guid>http://widerin.net/posts/2020/gitlab-security-products-with-java-and-gradle/</guid><description>&lt;p&gt;GitLab security products have been constantly improving support for different
build tools and programming languages.&lt;/p&gt;
&lt;p&gt;My &lt;a href="https://gitlab.com/gitlab-org/security-products/license-management/merge_requests/7"&gt;recent contribution&lt;/a&gt;
to &lt;a href="https://docs.gitlab.com/ee/user/compliance/license_compliance/#license-compliance"&gt;License compliance&lt;/a&gt; allows now to inject commands &lt;code&gt;SETUP_CMD&lt;/code&gt; environment
variable to the core to bypass the package manager auto-detection and make use
of the &lt;code&gt;./gradlew&lt;/code&gt; &lt;a href="https://gradle.org"&gt;Gradle&lt;/a&gt; wrapper script.&lt;/p&gt;
&lt;p&gt;For example:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;include:
- template: Security/License-Scanning.gitlab-ci.yml
variables:
SETUP_CMD: sh my-custom-install-script.sh
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;In this example, my-custom-install-script.sh is a shell script at the root
directory of your project.&lt;/p&gt;</description></item><item><title>Gitlab License Management with Java 11</title><link>http://widerin.net/posts/2018/gitlab-license-management-with-java-11/</link><pubDate>Fri, 21 Dec 2018 00:00:00 +0000</pubDate><guid>http://widerin.net/posts/2018/gitlab-license-management-with-java-11/</guid><description>&lt;p&gt;If built-in &lt;a href="https://docs.gitlab.com/ee/user/project/merge_requests/license_management.html"&gt;License Management&lt;/a&gt; functionality does not support the programming
language requirements you have, you can customize the &lt;a href="https://docs.gitlab.com/ee/user/project/merge_requests/license_management.html"&gt;License Management&lt;/a&gt;
docker image.&lt;/p&gt;
&lt;p&gt;This guide shows you how to use &lt;a href="https://docs.gitlab.com/ee/user/project/merge_requests/license_management.html"&gt;License Management&lt;/a&gt; with &lt;a href="https://openjdk.java.net/"&gt;OpenJDK&lt;/a&gt; 11 or
later.&lt;/p&gt;
&lt;h2 id="license-management-definition"&gt;License Management definition&lt;/h2&gt;
&lt;p&gt;&lt;a href="https://docs.gitlab.com/ee/user/project/merge_requests/license_management.html"&gt;License Management&lt;/a&gt; helps you find what licenses your project uses in its
dependencies and decide for each of then whether to allow it or forbid it.&lt;/p&gt;
&lt;div class="gallery shadow" itemscope itemtype="https://schema.org/ImageGallery"&gt;
&lt;figure itemprop="associatedMedia" itemscope itemtype="https://schema.org/ImageObject"&gt;
&lt;a class="glightbox" href="https://docs.gitlab.com/ee/user/compliance/license_compliance/img/license_compliance_v13_0.png" data-gallery="gallery-0" data-glightbox="description: License Compliance report under pipelines" itemprop="contentUrl"&gt;
&lt;img loading="lazy" src="https://docs.gitlab.com/ee/user/compliance/license_compliance/img/license_compliance_v13_0.png" alt="License Compliance report under pipelines" itemprop="thumbnail"&gt;
&lt;/a&gt;
&lt;figcaption&gt;&lt;p&gt;License Compliance report under pipelines&lt;/p&gt;</description></item><item><title>GitLab SAST and Java 11</title><link>http://widerin.net/posts/2018/gitlab-sast-and-java-11/</link><pubDate>Wed, 19 Dec 2018 00:00:00 +0000</pubDate><guid>http://widerin.net/posts/2018/gitlab-sast-and-java-11/</guid><description>&lt;p&gt;If built-in &lt;a href="https://docs.gitlab.com/ee/user/project/merge_requests/sast.html"&gt;Static Application Security Testing&lt;/a&gt;
functionality does not support the programming language requirements you have,
you can customize the analyzer docker images in [GitLab]&amp;rsquo;s &lt;code&gt;sast&lt;/code&gt; pipeline job.&lt;/p&gt;
&lt;p&gt;This guide shows you how to use &lt;a href="https://docs.gitlab.com/ee/user/project/merge_requests/sast.html"&gt;SAST&lt;/a&gt; with &lt;a href="https://openjdk.java.net/"&gt;OpenJDK&lt;/a&gt; 11 or later.&lt;/p&gt;
&lt;h2 id="sast-definition"&gt;SAST definition&lt;/h2&gt;
&lt;p&gt;Static Application Security Testing provides you information if&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;your application is vulnerable by using an external library in a specific
version which is known to be vulnerable or&lt;/li&gt;
&lt;li&gt;your code has a potentially dangerous attribute in a class, or unsafe code
that can lead to unintended code execution.&lt;/li&gt;
&lt;/ul&gt;
&lt;div class="gallery shadow" itemscope itemtype="https://schema.org/ImageGallery"&gt;
&lt;figure itemprop="associatedMedia" itemscope itemtype="https://schema.org/ImageObject"&gt;
&lt;a class="glightbox" href="https://docs.gitlab.com/ee/user/application_security/security_dashboard/img/pipeline_security_dashboard_v13_3.png" data-gallery="gallery-0" data-glightbox="description: Project Security Dashboard" itemprop="contentUrl"&gt;
&lt;img loading="lazy" src="https://docs.gitlab.com/ee/user/application_security/security_dashboard/img/pipeline_security_dashboard_v13_3.png" alt="Project Security Dashboard" itemprop="thumbnail"&gt;
&lt;/a&gt;
&lt;figcaption&gt;&lt;p&gt;Project Security Dashboard&lt;/p&gt;</description></item><item><title>Official Grafana docker image on OpenShift 3.x</title><link>http://widerin.net/posts/2017/official-grafana-docker-image-on-openshift-3.x/</link><pubDate>Sun, 10 Sep 2017 00:00:00 +0000</pubDate><guid>http://widerin.net/posts/2017/official-grafana-docker-image-on-openshift-3.x/</guid><description>&lt;p&gt;Running offical docker images from &lt;a href="https://hub.docker.com"&gt;Docker hub&lt;/a&gt; on &lt;a href="https://www.openshift.com/"&gt;OpenShift&lt;/a&gt; can be
painful as it uses &lt;a href="https://docs.openshift.org/latest/creating_images/guidelines.html#openshift-origin-specific-guidelines"&gt;arbitrary user ids&lt;/a&gt;
by default. Often you end up building your own or using 3rd party
forks/clones of the offical image, which leds to additional effort to
keep it up to date in terms of security and/or version upgrades.&lt;/p&gt;
&lt;div class="callout callout-default"&gt;
&lt;p class="callout-title"&gt;Background&lt;/p&gt;
Technically speaking, [OpenShift] generates a dynamic &lt;code&gt;uid&lt;/code&gt; to launch a
container which will not have an associated entry in the containers
&lt;code&gt;/etc/passwd&lt;/code&gt; file. At docker image build time this user does not exist so
&lt;code&gt;chown&lt;/code&gt; files and/or directories to this &lt;code&gt;uid&lt;/code&gt; is not possible.
&lt;/div&gt;
&lt;h2 id="grafanas-docker-image"&gt;Grafana&amp;rsquo;s docker image&lt;/h2&gt;
&lt;h3 id="gosu"&gt;gosu&lt;/h3&gt;
&lt;p&gt;&lt;a href="https://grafana.com/"&gt;Grafana&lt;/a&gt; runs its service as &lt;code&gt;grafana&lt;/code&gt; user and uses an &lt;em&gt;entrypoint
script&lt;/em&gt; which runs as &lt;code&gt;root&lt;/code&gt; and launches &lt;code&gt;grafana-server&lt;/code&gt; as &lt;code&gt;grafana&lt;/code&gt;
user by using &lt;a href="https://github.com/tianon/gosu"&gt;gosu&lt;/a&gt;, see &lt;a href="https://github.com/grafana/grafana-docker/blob/b1fbad4afe22f88931d0b632d9a3c0df4221345c/run.sh#L42-L49"&gt;run.sh on
github.com&lt;/a&gt;&lt;/p&gt;</description></item><item><title>Continuous integration with GitLab and Docker</title><link>http://widerin.net/posts/2016/continuous-integration-with-gitlab-and-docker/</link><pubDate>Tue, 11 Oct 2016 00:00:00 +0000</pubDate><guid>http://widerin.net/posts/2016/continuous-integration-with-gitlab-and-docker/</guid><description>&lt;p&gt;I&amp;rsquo;ve given a talk about continuous integration with &lt;a href="https://about.gitlab.com"&gt;GitLab&lt;/a&gt; and &lt;a href="https://www.docker.com"&gt;Docker&lt;/a&gt; on
Developer Meetup &lt;a href="https://twitter.com/VlbgWebDev"&gt;VlbgWebDev&lt;/a&gt;. The Meetup takes
place every second Tuesday every Month and i&amp;rsquo;ve met some old colleagues there.&lt;/p&gt;
&lt;p&gt;It was a nice Meetup with lots of discussions, that&amp;rsquo;s why i published my sample
code to GitLab and my slides to Speakerdeck. First intention was to do some
&lt;a href="http://www.pylonsproject.org/"&gt;Pyramid&lt;/a&gt; demo but after I&amp;rsquo;ve heard there are
some &lt;a href="http://flask.pocoo.org/"&gt;Flask&lt;/a&gt; people, I&amp;rsquo;ve added
&lt;a href="http://flask.pocoo.org/"&gt;Flask&lt;/a&gt; demos as well :-)&lt;/p&gt;</description></item><item><title>Change umask in Docker containers</title><link>http://widerin.net/posts/2016/change-umask-in-docker-containers/</link><pubDate>Mon, 25 Jan 2016 00:00:00 +0000</pubDate><guid>http://widerin.net/posts/2016/change-umask-in-docker-containers/</guid><description>&lt;h2 id="problem"&gt;Problem&lt;/h2&gt;
&lt;p&gt;You&amp;rsquo;re mounting volumes into &lt;a href="https://www.docker.com"&gt;Docker&lt;/a&gt; containers and running into permission
issues while accessing volume from other &lt;a href="https://www.docker.com"&gt;Docker&lt;/a&gt; containers.&lt;/p&gt;
&lt;div class="callout callout-info"&gt;
&lt;p class="callout-title"&gt;Docker installation required&lt;/p&gt;
&lt;a href="https://docs.docker.com/engine/installation/"&gt;Docker&lt;/a&gt; must be installed on your system.
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-console" data-lang="console"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="gp"&gt;$&lt;/span&gt; docker version
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="go"&gt;Client: Docker Engine - Community
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="go"&gt; Version: 19.03.5
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="go"&gt; API version: 1.40
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="go"&gt; Go version: go1.12.12
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="go"&gt; Git commit: 633a0ea
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="go"&gt; Built: Wed Nov 13 07:22:34 2019
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="go"&gt; OS/Arch: darwin/amd64
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="go"&gt; Experimental: false
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="err"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="go"&gt;Server: Docker Engine - Community
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="go"&gt; Engine:
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="go"&gt; Version: 19.03.5
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="go"&gt; API version: 1.40 (minimum version 1.12)
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="go"&gt; Go version: go1.12.12
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="go"&gt; Git commit: 633a0ea
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="go"&gt; Built: Wed Nov 13 07:29:19 2019
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="go"&gt; OS/Arch: linux/amd64
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="go"&gt; Experimental: false
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="go"&gt; containerd:
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="go"&gt; Version: v1.2.10
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="go"&gt; GitCommit: b34a5c8af56e510852c35414db4c1f4fa6172339
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="go"&gt; runc:
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="go"&gt; Version: 1.0.0-rc8+dev
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="go"&gt; GitCommit: 3e425f80a8c931f88e6d94a8c831b9d5aa481657
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="go"&gt; docker-init:
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="go"&gt; Version: 0.18.0
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="go"&gt; GitCommit: fec3683
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;h2 id="umask"&gt;umask&lt;/h2&gt;
&lt;p&gt;umask is set to &lt;code&gt;0022&lt;/code&gt; on most linux sytems by default. This umask allows group
and others to &lt;strong&gt;read&lt;/strong&gt; but &lt;strong&gt;not write&lt;/strong&gt; your files, see below:&lt;/p&gt;</description></item><item><title>Connect devpi to your docker container</title><link>http://widerin.net/posts/2016/connect-devpi-to-your-docker-container/</link><pubDate>Thu, 07 Jan 2016 00:00:00 +0000</pubDate><guid>http://widerin.net/posts/2016/connect-devpi-to-your-docker-container/</guid><description>&lt;p&gt;You&amp;rsquo;re running &lt;a href="http://pypi.python.org/pypi/pip"&gt;pip install&lt;/a&gt;,
&lt;a href="http://pypi.python.org/pypi/zc.buildout"&gt;buildout&lt;/a&gt; or your automated
tests within a &lt;a href="https://www.docker.com"&gt;docker&lt;/a&gt; container and after
running it multiple times you&amp;rsquo;ve become tired of waiting for it to
finally complete? Then it&amp;rsquo;s time to connect a
&lt;a href="http://doc.devpi.net"&gt;devpi&lt;/a&gt; server.&lt;/p&gt;
&lt;div class="callout callout-info"&gt;
&lt;p class="callout-title"&gt;Docker installation required&lt;/p&gt;
&lt;a href="https://docs.docker.com/engine/installation/"&gt;Docker&lt;/a&gt; must be installed on your system.
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-console" data-lang="console"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="gp"&gt;$&lt;/span&gt; docker version
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="go"&gt;Client: Docker Engine - Community
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="go"&gt; Version: 19.03.5
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="go"&gt; API version: 1.40
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="go"&gt; Go version: go1.12.12
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="go"&gt; Git commit: 633a0ea
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="go"&gt; Built: Wed Nov 13 07:22:34 2019
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="go"&gt; OS/Arch: darwin/amd64
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="go"&gt; Experimental: false
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="err"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="go"&gt;Server: Docker Engine - Community
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="go"&gt; Engine:
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="go"&gt; Version: 19.03.5
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="go"&gt; API version: 1.40 (minimum version 1.12)
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="go"&gt; Go version: go1.12.12
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="go"&gt; Git commit: 633a0ea
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="go"&gt; Built: Wed Nov 13 07:29:19 2019
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="go"&gt; OS/Arch: linux/amd64
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="go"&gt; Experimental: false
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="go"&gt; containerd:
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="go"&gt; Version: v1.2.10
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="go"&gt; GitCommit: b34a5c8af56e510852c35414db4c1f4fa6172339
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="go"&gt; runc:
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="go"&gt; Version: 1.0.0-rc8+dev
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="go"&gt; GitCommit: 3e425f80a8c931f88e6d94a8c831b9d5aa481657
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="go"&gt; docker-init:
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="go"&gt; Version: 0.18.0
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="go"&gt; GitCommit: fec3683
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;You&amp;rsquo;ll need a working directory where &lt;code&gt;docker-compose.yml&lt;/code&gt; file and
certificates are stored in, so please create a folder &lt;code&gt;my-devpi&lt;/code&gt; as
shown below:&lt;/p&gt;</description></item><item><title>Private docker-registry within docker</title><link>http://widerin.net/posts/2016/private-docker-registry-within-docker/</link><pubDate>Thu, 07 Jan 2016 00:00:00 +0000</pubDate><guid>http://widerin.net/posts/2016/private-docker-registry-within-docker/</guid><description>&lt;p&gt;Sometimes you need your own &lt;a href="https://github.com/docker/distribution"&gt;docker-registry&lt;/a&gt; to just try out new things or to avoid downloading stuff again and again from the internet. I tried to build a &lt;a href="https://github.com/docker/compose/releases"&gt;docker-compose&lt;/a&gt; recipe to setup my own private registry.&lt;/p&gt;
&lt;div class="callout callout-info"&gt;
&lt;p class="callout-title"&gt;Docker installation required&lt;/p&gt;
&lt;a href="https://docs.docker.com/engine/installation/"&gt;Docker&lt;/a&gt; must be installed on your system.
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-console" data-lang="console"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="gp"&gt;$&lt;/span&gt; docker version
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="go"&gt;Client: Docker Engine - Community
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="go"&gt; Version: 19.03.5
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="go"&gt; API version: 1.40
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="go"&gt; Go version: go1.12.12
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="go"&gt; Git commit: 633a0ea
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="go"&gt; Built: Wed Nov 13 07:22:34 2019
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="go"&gt; OS/Arch: darwin/amd64
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="go"&gt; Experimental: false
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="err"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="go"&gt;Server: Docker Engine - Community
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="go"&gt; Engine:
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="go"&gt; Version: 19.03.5
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="go"&gt; API version: 1.40 (minimum version 1.12)
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="go"&gt; Go version: go1.12.12
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="go"&gt; Git commit: 633a0ea
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="go"&gt; Built: Wed Nov 13 07:29:19 2019
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="go"&gt; OS/Arch: linux/amd64
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="go"&gt; Experimental: false
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="go"&gt; containerd:
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="go"&gt; Version: v1.2.10
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="go"&gt; GitCommit: b34a5c8af56e510852c35414db4c1f4fa6172339
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="go"&gt; runc:
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="go"&gt; Version: 1.0.0-rc8+dev
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="go"&gt; GitCommit: 3e425f80a8c931f88e6d94a8c831b9d5aa481657
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="go"&gt; docker-init:
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="go"&gt; Version: 0.18.0
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="go"&gt; GitCommit: fec3683
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;You&amp;rsquo;ll need a working directory where &lt;code&gt;docker-compose.yml&lt;/code&gt; file and certificates are stored in, so please create a folder &lt;code&gt;my-registry&lt;/code&gt; as shown below:&lt;/p&gt;</description></item><item><title>Install Robot Framework RIDE through homebrew</title><link>http://widerin.net/posts/2012/install-robot-framework-ride-through-homebrew/</link><pubDate>Tue, 16 Oct 2012 00:00:00 +0000</pubDate><guid>http://widerin.net/posts/2012/install-robot-framework-ride-through-homebrew/</guid><description>&lt;p&gt;&lt;a href="https://www.python.org/"&gt;Python&lt;/a&gt;, &lt;a href="https://wxpython.org/"&gt;wxPython&lt;/a&gt; and &lt;a href="https://github.com/robotframework/RIDE"&gt;robotframework RIDE&lt;/a&gt; on your macOS.&lt;/p&gt;
&lt;div class="callout callout-default"&gt;
&lt;p class="callout-title"&gt;Update 2016, 23 Feb&lt;/p&gt;
Fixed &lt;code&gt;wxPython&lt;/code&gt; installation so it works with most recent versions available today.
&lt;/div&gt;
&lt;div class="callout callout-default"&gt;
&lt;p class="callout-title"&gt;Update 2017, 03 Jul&lt;/p&gt;
Seems this installation method no longer works on &amp;gt;= MacOS Sierra.
Please use a &lt;a href="https://hub.docker.com/r/ivonet/robotframework-ride/"&gt;docker image and Ride in browser&lt;/a&gt;.
&lt;/div&gt;
&lt;h2 id="wxpython"&gt;wxPython&lt;/h2&gt;
&lt;p&gt;Since &lt;a href="https://wxpython.org/"&gt;wxPython&lt;/a&gt; is available on &lt;a href="http://brew.sh"&gt;homebrew&lt;/a&gt; you don&amp;rsquo;t have to install the package provided on the &lt;a href="https://wxpython.org/"&gt;wxPython&lt;/a&gt; website.&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;$ brew info wxpython
wxPython: stable 3.0.2.0 (bottled)
Python bindings for wxWidgets
https://www.wxwidgets.org/
/usr/local/Cellar/wxPython/3.0.2.0 (1,107 files, 38.2M)
Poured from bottle
From: https://github.com/Homebrew/homebrew/blob/master/Library/Formula/wxpython.rb
==&amp;gt; Dependencies
Required: wxmac ✔
==&amp;gt; Options
--universal
$ brew install wxpython
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;This will take some time so be patient.&lt;/p&gt;</description></item></channel></rss>