Skip to content
Permalink
Browse files
NO-JIRA: Add docker build file for Centos, update README
  • Loading branch information
Mike Cressman committed Aug 15, 2018
1 parent 788fe2a commit 483b9293604063480d5f706edea18cb0a3e4c8b9
Show file tree
Hide file tree
Showing 2 changed files with 80 additions and 6 deletions.
@@ -0,0 +1,71 @@
#
# Licensed to the Apache Software Foundation (ASF) under one
# or more contributor license agreements. See the NOTICE file
# distributed with this work for additional information
# regarding copyright ownership. The ASF licenses this file
# to you under the Apache License, Version 2.0 (the
# "License"); you may not use this file except in compliance
# with the License. You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing,
# software distributed under the License is distributed on an
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
# KIND, either express or implied. See the License for the
# specific language governing permissions and limitations
# under the License.
#

# Downloads, builds and installs apache proton and qpid dispatch on Centos and starts the dispatch router
# /main is the top level folder under which proton (/main/qpid-proton/) and dispatch (/main/qpid-dispatch) source code is downloaded from github
# /usr/local/lib64 is the folder in which the proton artifacts are installed.
# /usr/local/sbin is the folder in which dispatch executable installed


# Copy this docker file to your local folder. Build the docker image like this:
# > sudo docker build -t <username>/dispatch --file=Dockerfile-centos .

# "<username>/dispatch" is a convention, you can call it whatever you want

# To launch a container running the new image:
# > sudo docker run -i -t <username>/dispatch

# To launch a container running the new image with an interactive shell prompt:
# > sudo docker run -i -t <username>/dispatch /bin/bash

################# Begin code #######

# Get the latest Centos version from dockerhub
FROM centos:latest

MAINTAINER "dev@qpid.apache.org"

# Install all the required packages. Some in this list were picked off from proton's INSTALL.md (https://github.com/apache/qpid-proton/blob/master/INSTALL.md) and the rest are from dispatch (https://github.com/apache/qpid-dispatch/blob/master/README)

# For centos, some packages are found in the epel repo, so first install access to it
RUN yum -y install epel-release

# now install the rest of the packages
RUN yum -y install gcc cmake libuuid-devel openssl-devel cyrus-sasl-devel cyrus-sasl-plain cyrus-sasl-gssapi cyrus-sasl-md5 swig python-devel java-1.8.0-openjdk-devel git make doxygen valgrind emacs libuv libuv-devel libwebsockets-devel python-unittest2 && yum clean all -y

# Create a main directory and clone the qpid-proton repo from github
RUN mkdir /main && cd /main && git clone https://github.com/apache/qpid-proton.git && cd /main/qpid-proton && mkdir /main/qpid-proton/build

WORKDIR /main/qpid-proton/build

# make and install proton
RUN cmake .. -DSYSINSTALL_BINDINGS=ON -DCMAKE_INSTALL_PREFIX=/usr -DSYSINSTALL_PYTHON=ON && make install

# Clone the qpid-dispatch git repo
RUN cd /main && git clone https://github.com/apache/qpid-dispatch.git && mkdir /main/qpid-dispatch/build

WORKDIR /main/qpid-dispatch/build
RUN cmake .. -DCMAKE_INSTALL_PREFIX=/usr && make install

# Uncomment the following line if you would like to run all the dispatch unit tests and system tests.
# RUN ctest -VV

# Start the dispatch router
CMD ["qdrouterd"]

@@ -23,13 +23,13 @@ containers, by providing an additional layer of abstraction and automation of op
virtualization on Linux.
<https://www.docker.com/what-docker>

####Dockerfiles for Fedora and Ubuntu
The two docker files, Dockerfile-fedora and Dockerfile-ubuntu provide quick start
docker containers with an running instance of qpid dispatch router on RHEL and Debian based systems respectively.
####Dockerfiles for Fedora, Ubuntu and Centos
The docker files, Dockerfile-fedora, Dockerfile-ubuntu, and Dockerfile-centos provide quick start
docker containers with a running instance of qpid dispatch router on the various platforms.

The dockerfiles follow these steps before launching the dispatch router

* Downloads all the fedora or ubuntu specific dependencies needed for building apache qpid-proton.
* Downloads all the specific dependencies needed for building apache qpid-proton.
* Downloads the source code of qpid-proton to /main/qpid-proton
* Builds and installs qpid-proton using gcc.
* Downloads the source code of qpid-dispatch to /main/qpid-dispatch.
@@ -40,8 +40,11 @@ The dockerfiles follow these steps before launching the dispatch router
* To build the fedora docker file
* sudo docker build -t docker-image-name --file=Dockerfile-fedora . (substitute docker-image-name with your own image name)
* To build the ubuntu docker file
* sudo docker build -t docker-image-name --file=Dockerfile-ubuntu . (substitute docker-image-name with your own image name)
* To run the fedora/ubuntu docker image
* sudo docker build -t docker-image-name --file=Dockerfile-ubuntu . (substitute docker-image-name with your own image name)
* To build the centos docker file
* sudo docker build -t docker-image-name --file=Dockerfile-centos . (substitute docker-image-name with your own image name)

* To run the fedora/ubuntu/centos docker image
* sudo docker run -i -t docker-image-name (substitute docker-image-name with your own image name)
* After the docker run command is invoked, execute the *sudo docker ps* command to check if your container name shows up in the list of docker processes.

0 comments on commit 483b929

Please sign in to comment.