Osmocom docker containers
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
Go to file
Pau Espin f19670453d
Drop default vty cmd 'ms-power-control dsp'
4 years ago
alpine-build Add Dockerfile for alpine:3.6 based containers with libosmocore build deps 6 years ago
alpine-lighttpd Add Dockerfile for alpine Linux with lighttpd 6 years ago
bind9 Makefile support for our production infrastructure containers 5 years ago
cgit cgit: Fix group membership to allow read of git repos 5 years ago
debian-jessie-build debian-*-build: don't download "Release" file 4 years ago
debian-jessie-buildslave Fix "'laforge/debian-jessie-build' not found" 5 years ago
debian-jessie-buildslave-st Fix "'laforge/debian-jessie-build' not found" 5 years ago
debian-jessie-osmocom Release.key of osmocom-nightly has expired; update it in all Dockerfiles 5 years ago
debian-repo-install-test repo-install-test: disable osmo-ggsn service 4 years ago
debian-sid-build add debian-sid-build, osmo-dev-on-debian-sid 6 years ago
debian-stretch-build debian-*-build: don't download "Release" file 4 years ago
debian-stretch-build-dist debian-stretch-build-dist: new Dockerfile 4 years ago
debian-stretch-titan debian-stretch-titan: Install netcat-openbsd required by osmo-ttcn3-hacks 4 years ago
gerrit cosmetic: gerrit: use variables for the files to patch 5 years ago
git-daemon git-deamon: Make sure to create the git-daemon user 5 years ago
gitolite Makefile support for our production infrastructure containers 5 years ago
gr-gsm-master Revert "Simplify git checkout, allow branches and commits" 4 years ago
make make: Fix OSMO_BB_BRANCH not being passed correctly 4 years ago
nplab-m3ua-test nplab-m3ua-test: support running without jenkins 4 years ago
nplab-sua-test Switch all osmo-*-master and ttcn3-*-test from jessie to stretch 4 years ago
osmo-bsc-latest osmo-bsc-latest: remove obsolete logging categories 4 years ago
osmo-bsc-master Fix trailing whitespace 4 years ago
osmo-bts-latest Drop default vty cmd 'ms-power-control dsp' 4 years ago
osmo-bts-master Drop default vty cmd 'ms-power-control dsp' 4 years ago
osmo-cn-latest osmo-cn-latest: Let osmo-hlr upgrade the db scheme 4 years ago
osmo-dev-on-debian-sid add debian-sid-build, osmo-dev-on-debian-sid 6 years ago
osmo-gerrit-libosmo Revert "Simplify git checkout, allow branches and commits" 4 years ago
osmo-ggsn-latest ensure well-formed config files 5 years ago
osmo-ggsn-master Fix git checkout for branches and commits 4 years ago
osmo-hlr-latest ensure well-formed config files 5 years ago
osmo-hlr-master Add script to regenerate VTY and counter documentation 4 years ago
osmo-hnbgw-latest Add osmo-*-latest Dockerfiles 5 years ago
osmo-hnbgw-master osmo-hnbgw-master: Bind Iuh socket to 0.0.0.0 4 years ago
osmo-mgw-latest ensure well-formed config files 5 years ago
osmo-mgw-master osmo-mgw: Bind to 0.0.0.0 by default 4 years ago
osmo-msc-latest osmo-msc.cfg: remove auth policy, LU reject cause 4 years ago
osmo-msc-master Add script to regenerate VTY and counter documentation 4 years ago
osmo-nitb-latest Add docker image for osmo-nitb-latest 4 years ago
osmo-nitb-master osmo-nitb-master: Include only one access-list in config 4 years ago
osmo-pcu-latest PCU: Add osmo-pcu-* + ttcn3-pcu-test containers 4 years ago
osmo-pcu-master Fix git checkout for branches and commits 4 years ago
osmo-remsim-latest Add 'osmo-remsim-latest' container 4 years ago
osmo-remsim-master add osmo-resmsim-master Docker container 4 years ago
osmo-sgsn-latest osmo-*-latest: s/nightly/latest/g in Dockerfile 5 years ago
osmo-sgsn-master osmo-sgsn-master: Enable Iu support 4 years ago
osmo-sip-latest osmo-*-latest: s/nightly/latest/g in Dockerfile 5 years ago
osmo-sip-master Add script to regenerate VTY and counter documentation 4 years ago
osmo-stp-latest osmo-*-latest: s/nightly/latest/g in Dockerfile 5 years ago
osmo-stp-master Fix git checkout for branches and commits 4 years ago
osmocom-bb-host-master osmocom-bb-host-master: install python-enum as fake_trx dependency 4 years ago
patchwork Makefile support for our production infrastructure containers 5 years ago
public-inbox add "public-inbox" Dockerfile + Makefiel 5 years ago
redmine redmine: migrate from 3.4 to 3.4-passenger 4 years ago
scripts regen_doc: Change IP network to an unused subnet 4 years ago
sctp-test Switch all osmo-*-master and ttcn3-*-test from jessie to stretch 4 years ago
sigtran-tests Switch all osmo-*-master and ttcn3-*-test from jessie to stretch 4 years ago
tmp add non-working yml file with service/stack description 6 years ago
ttcn3-bsc-test osmo-bsc.cfg: remove obsolete logging categories (cc, mgcp) 4 years ago
ttcn3-bsc-test-sccplite symlinks: ttcn3-bsc-test-sccplite 5 years ago
ttcn3-bscnat-test ttcn-*: Fix gsmtap log not enabled 4 years ago
ttcn3-bts-test Drop default vty cmd 'ms-power-control dsp' 4 years ago
ttcn3-ggsn-test ttcn-*: Fix gsmtap log not enabled 4 years ago
ttcn3-hlr-test ttcn-*: Fix gsmtap log not enabled 4 years ago
ttcn3-mgw-test ttcn-*: Fix gsmtap log not enabled 4 years ago
ttcn3-msc-test ttcn-*: Fix gsmtap log not enabled 4 years ago
ttcn3-nitb-sysinfo Fix git checkout for branches and commits 4 years ago
ttcn3-pcu-test Fix ttcn3-pcu-test-latest 4 years ago
ttcn3-pcu-test-sns PCU: Differentiate between tests with classic and SNS Gb dialects 4 years ago
ttcn3-remsim-test support for dockerized osmo-resmim testsuite 4 years ago
ttcn3-sgsn-test ttcn-*: Fix gsmtap log not enabled 4 years ago
ttcn3-sip-test ttcn-*: Fix gsmtap log not enabled 4 years ago
ttcn3-stp-test ttcn3-stp-tests: laforge/stp has been merged master; use master 4 years ago
ubuntu-zesty-build *-build: Add libgnutls28-dev, as libosmocore requires this now 6 years ago
.gitignore gitignore: add .release 4 years ago
.gitreview add .gitreview 5 years ago
README.md Switch all osmo-*-master and ttcn3-*-test from jessie to stretch 4 years ago
Release.key Release.key of osmocom-nightly has expired; update it in all Dockerfiles 5 years ago
jenkins-common.sh clean up the net and attached containers to ensure reliable test starts 4 years ago
osmo-bisect.sh Add script to bisect test failures with ttcn3 and docker 4 years ago

README.md

Osmocom docker playground

This repository contains some humble attempts at creating some Docker containers + related stacks around Osmocom. So far, the main focus is test automation.

Running a testsuite

All testsuite folders start with ttcn3 or nplab. Run the following to build/update all required containers and start a specific testsuite:

$ cd ttcn3-mgw-test
$ ./jenkins.sh

Environment variables:

  • IMAGE_SUFFIX: the version of the Osmocom stack to run the testsuite against. Default is master, set this to latest to test the last stable releases.
  • OSMO_TTCN3_BRANCH: osmo-ttcn3-hacks.git branch, which will be used when building a ttcn3-* docker image. Defaults to master.
  • NO_DOCKER_IMAGE_BUILD: when set to 1, it won't try to update the containers (see "caching" below)

Building containers manually

Most folders in this repository contain a Dockerfile. Build a docker container with the same name as the folder like this:

$ cd debian-stretch-build
$ make

Caching

All folders named osmo-*-latest and osmo-*-master build the latest stable or most recent commit from master of the corresponding Osmocom program's git repository. When you have built it already, running make will only do a small HTTP request to check if the sources are outdated and skip the build in case it is still up-to-date.

Dependencies

Folders that don't have a jenkins.sh usually only depend on the container that is specified in the FROM line of their Dockerfile. Testsuites depend on multiple containers, they are defined on top of each jenkins.sh:

. ../jenkins-common.sh
IMAGE_SUFFIX="${IMAGE_SUFFIX:-master}"
docker_images_require \
	"debian-stretch-build" \
	"osmo-stp-$IMAGE_SUFFIX" \
	"osmo-bsc-$IMAGE_SUFFIX" \
	"osmo-bts-$IMAGE_SUFFIX" \
	"debian-stretch-titan" \
	"ttcn3-bsc-test"

Reasoning for this implementation

Before having the docker_images_require lines, there used to be a top-level Makefile for resolving dependencies between the containers. But it was prone to mistakes: when new folders in the repository were added without related targets in the Makefile, make would always assume that the targets where the always existing folders and therefore never build the containers.

In order to implement testing latest in addition to master (OS#3268), it would have been necessary to add further complexity to the Makefile. Instead it was decided to scrap the file, and just keep the short list of dependencies right above where they would be needed in the jenkins.sh.

See also