diff --git a/configure b/configure index 74b27f8c..60d8ec60 100755 --- a/configure +++ b/configure @@ -4191,7 +4191,7 @@ fi -ac_config_files="$ac_config_files Makefile lib/Makefile lib/src/Makefile lib/clicon/Makefile apps/Makefile apps/cli/Makefile apps/backend/Makefile apps/netconf/Makefile apps/dbctrl/Makefile include/Makefile etc/Makefile etc/cliconrc example/Makefile example/docker/Makefile docker/Makefile docker/cli/Makefile docker/cli/Dockerfile docker/backend/Makefile docker/backend/Dockerfile doc/Makefile" +ac_config_files="$ac_config_files Makefile lib/Makefile lib/src/Makefile lib/clicon/Makefile apps/Makefile apps/cli/Makefile apps/backend/Makefile apps/netconf/Makefile apps/dbctrl/Makefile include/Makefile etc/Makefile etc/cliconrc example/Makefile example/docker/Makefile docker/Makefile docker/cli/Makefile docker/cli/Dockerfile docker/backend/Makefile docker/backend/Dockerfile docker/netconf/Makefile docker/netconf/Dockerfile doc/Makefile" cat >confcache <<\_ACEOF # This file is a shell script that caches the results of configure @@ -4903,6 +4903,8 @@ do "docker/cli/Dockerfile") CONFIG_FILES="$CONFIG_FILES docker/cli/Dockerfile" ;; "docker/backend/Makefile") CONFIG_FILES="$CONFIG_FILES docker/backend/Makefile" ;; "docker/backend/Dockerfile") CONFIG_FILES="$CONFIG_FILES docker/backend/Dockerfile" ;; + "docker/netconf/Makefile") CONFIG_FILES="$CONFIG_FILES docker/netconf/Makefile" ;; + "docker/netconf/Dockerfile") CONFIG_FILES="$CONFIG_FILES docker/netconf/Dockerfile" ;; "doc/Makefile") CONFIG_FILES="$CONFIG_FILES doc/Makefile" ;; *) as_fn_error $? "invalid argument: \`$ac_config_target'" "$LINENO" 5;; diff --git a/configure.ac b/configure.ac index 77158689..4848c8a0 100644 --- a/configure.ac +++ b/configure.ac @@ -174,6 +174,8 @@ AC_OUTPUT(Makefile docker/cli/Dockerfile docker/backend/Makefile docker/backend/Dockerfile + docker/netconf/Makefile + docker/netconf/Dockerfile doc/Makefile ) diff --git a/docker/Makefile.in b/docker/Makefile.in index ec50e938..22430dd8 100644 --- a/docker/Makefile.in +++ b/docker/Makefile.in @@ -27,7 +27,7 @@ LIBS = @LIBS@ SHELL = /bin/sh -SUBDIRS = cli backend +SUBDIRS = cli backend netconf .PHONY: all clean depend install $(SUBDIRS) docker push diff --git a/docker/README b/docker/README index a9f48b0f..0cad794f 100644 --- a/docker/README +++ b/docker/README @@ -1,6 +1,10 @@ This dir contains docker code - how to build clixon as docker containers - cli Build olofhagsand/clicon_cli container - backend Build olofhagsand/clicon_backend container + cli Build olofhagsand/clixon_cli container + backend Build olofhagsand/clixon_backend container + netconf Build olofhagsand/clixon_netconf container + +Perform the build by 'make docker'. +You may also do 'make push' if you want to push the image, but you may then consider changing the image name (in the makefile:s). You may run the container directly by going directly to example and the docker runtime scripts there \ No newline at end of file diff --git a/docker/backend/Dockerfile.in b/docker/backend/Dockerfile.in index 85204ec0..6dbd28c1 100644 --- a/docker/backend/Dockerfile.in +++ b/docker/backend/Dockerfile.in @@ -11,7 +11,6 @@ RUN ldconfig RUN sudo groupadd clicon CMD ["/usr/sbin/clicon_backend", "-D", "1", "-F", "-f", "/data/clicon.conf"] -EXPOSE 7878 7878/udp diff --git a/docker/backend/Makefile.in b/docker/backend/Makefile.in index 4c7c7515..ef7f2496 100644 --- a/docker/backend/Makefile.in +++ b/docker/backend/Makefile.in @@ -28,6 +28,7 @@ sbindir = @sbindir@ libdir = @libdir@ includedir = @includedir@ datarootdir = @datarootdir@ +# You may consider changing this image = olofhagsand/clicon_backend all: @@ -35,7 +36,7 @@ all: clean: distclean: clean - rm -f Makefile *~ .depend libcli* clicon_cli clicon_backend Dockerfile + rm -f Makefile *~ .depend libcligen* libclicon* clicon_backend Dockerfile # Kind of reverse install, could have copied from src dir,... .PHONY: docker push diff --git a/docker/cli/Dockerfile.in b/docker/cli/Dockerfile.in index cb74cd58..92f6aa32 100644 --- a/docker/cli/Dockerfile.in +++ b/docker/cli/Dockerfile.in @@ -11,8 +11,6 @@ RUN ldconfig CMD ["/usr/bin/clicon_cli", "-f", "/data/clicon.conf"] -EXPOSE 7878 7878/udp - diff --git a/docker/cli/Makefile.in b/docker/cli/Makefile.in index 83b36679..af9b1b18 100644 --- a/docker/cli/Makefile.in +++ b/docker/cli/Makefile.in @@ -28,7 +28,7 @@ sbindir = @sbindir@ libdir = @libdir@ includedir = @includedir@ datarootdir = @datarootdir@ -# This is my dockerhub account +# You may consider changing this image = olofhagsand/clicon_cli all: @@ -36,7 +36,7 @@ all: clean: distclean: clean - rm -f Makefile *~ .depend libcli* clicon_cli clicon_backend Dockerfile + rm -f Makefile *~ .depend libcligen* libclicon* clicon_cli Dockerfile # Kind of reverse install, could have copied from src dir,... .PHONY: docker push diff --git a/docker/cli/start.sh b/docker/cli/start.sh deleted file mode 100755 index 962e2f77..00000000 --- a/docker/cli/start.sh +++ /dev/null @@ -1,9 +0,0 @@ -#!/bin/bash -# Script reads yang spec from stdin then start clicon_cli -read -d $'\cd' -p "input yang spec(end with ^d). Or just ^d for default spec> " spec -if [ "$spec" != "" ]; then - echo "module datamodel{" > /usr/local/share/clicon_yang/yang/clicon_yang.yang - echo $spec >> /usr/local/share/clicon_yang/yang/clicon_yang.yang - echo "}" >> /usr/local/share/clicon_yang/yang/clicon_yang.yang -fi -clicon_cli -cf /usr/local/etc/clicon_yang.conf diff --git a/docker/netconf/Dockerfile.in b/docker/netconf/Dockerfile.in new file mode 100644 index 00000000..4b0306ef --- /dev/null +++ b/docker/netconf/Dockerfile.in @@ -0,0 +1,18 @@ +FROM ubuntu:14.04 +# 12.04 +MAINTAINER Olof Hagsand +ENV DEBIAN_FRONTEND noninteractive +RUN apt-get update && apt-get install -y libqdbm-dev +COPY libcligen.so.@CLIGEN_VERSION@ /usr/lib/ +COPY libclicon.so.@CLICON_VERSION_MAJOR@ /usr/lib/ +COPY libclicon_netconf.so.@CLIGEN_VERSION@ /usr/lib/ +COPY clicon_netconf /usr/bin/ +RUN ldconfig +CMD ["/usr/bin/clicon_netconf", "-f", "/data/clicon.conf"] + + + + + + + diff --git a/docker/netconf/Makefile.in b/docker/netconf/Makefile.in new file mode 100644 index 00000000..6df1a267 --- /dev/null +++ b/docker/netconf/Makefile.in @@ -0,0 +1,63 @@ +# +# Copyright (C) 2009-2016 Olof Hagsand and Benny Holmgren +# +# This file is part of CLIXON. +# +# CLIXON is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 3 of the License, or +# (at your option) any later version. +# +# CLIXON is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with CLIXON; see the file LICENSE. If not, see +# . +# +VPATH = @srcdir@ +prefix = @prefix@ +exec_prefix = @exec_prefix@ +srcdir = @srcdir@ +top_srcdir = @top_srcdir@ +prefix = @prefix@ +bindir = @bindir@ +sbindir = @sbindir@ +libdir = @libdir@ +includedir = @includedir@ +datarootdir = @datarootdir@ +# You may consider changing this +image = olofhagsand/clicon_netconf + +all: + @echo "Run make docker to build docker image" +clean: + +distclean: clean + rm -f Makefile *~ .depend libcligen* libclicon* clicon_netconf Dockerfile + +# Kind of reverse install, could have copied from src dir,... +.PHONY: docker push +docker: + cp $(DESTDIR)$(libdir)/libcligen.so.@CLIGEN_VERSION@ . + cp $(DESTDIR)$(libdir)/libclicon.so.@CLICON_VERSION_MAJOR@ . + cp $(DESTDIR)$(libdir)/libclicon_netconf.so.@CLICON_VERSION_MAJOR@ . + cp $(DESTDIR)$(bindir)/clicon_netconf . + sudo docker build -t $(image) . + +push: + sudo docker push $(image) + +install: + +uninstall: + +install-include: + +depend: +# $(CC) $(DEPENDFLAGS) $(INCLUDES) $(CFLAGS) -MM $(SRC) > .depend + +#include .depend + diff --git a/docker/netconf/README b/docker/netconf/README new file mode 100644 index 00000000..f2763a0c --- /dev/null +++ b/docker/netconf/README @@ -0,0 +1,6 @@ +Ensure that cligen and clicon has been built and installed. +sudo make docker +make push + +Then go to example and run the example as a docker container +