diff --git a/support/docker/README.md b/support/docker/README.md index 911ed8481f..6fb4472672 100644 --- a/support/docker/README.md +++ b/support/docker/README.md @@ -19,16 +19,16 @@ Docker running example $ TAG=artful docker-compose \ -f docker-compose.yml -f docker-compose.test.yml run test -* TODO - Development(centos:latest) - $ DIST=centos docker-compose build - $ DIST=centos docker-compose run dev +* Development(fedora:latest) + $ DIST=fedora docker-compose build + $ DIST=fedora docker-compose run dev * TODO - Runtime(debian-jessie) $ DIST=debian TAG=jessie docker-compose build $ DIST=debian TAG=jessie docker-compose -f docker-compose.yml -f docker-compose.run.yml run run -* All Test with All Environment(TODO) +* All Test with All Environment $ ./check.sh * Run WebUI @@ -45,9 +45,9 @@ export DEBFULLNAME='Sukchan Lee' export DEBEMAIL='acetcom@gmail.com' * Transfer GPG key - $ gpg --export-secret-keys --armor --output private.asc' + $ gpg --export-secret-keys --armor --output private.asc $ gpg --import private.asc - $ gpg --export > public.asc' + $ gpg --export > public.asc $ gpg --import public.asc * Upload LaunchPad diff --git a/support/docker/build/Dockerfile b/support/docker/build/Dockerfile index cff483e77e..7ca400c2cd 100644 --- a/support/docker/build/Dockerfile +++ b/support/docker/build/Dockerfile @@ -5,13 +5,14 @@ FROM ${username}/${dist}-${tag}-base MAINTAINER Sukchan Lee -WORKDIR /tmp +WORKDIR /root +COPY setup.sh /root ARG USER=acetcom ARG REPO=nextepc ARG BRANCH=master RUN git clone https://github.com/$USER/$REPO -ADD https://api.github.com/repos/$USER/$REPO/git/refs/heads/$BRANCH /tmp/version.json +ADD https://api.github.com/repos/$USER/$REPO/git/refs/heads/$BRANCH /root/nextepc-ver.json RUN cd nextepc && \ git fetch && git checkout -f -B master origin/master && \ @@ -21,5 +22,3 @@ RUN cd nextepc && \ --sysconfdir=/etc \ --localstatedir=/var && \ make -j `nproc` install - -WORKDIR /root diff --git a/support/docker/ubuntu/base/setup.sh b/support/docker/build/setup.sh similarity index 100% rename from support/docker/ubuntu/base/setup.sh rename to support/docker/build/setup.sh diff --git a/support/docker/centos/7/base/Dockerfile b/support/docker/centos/7/base/Dockerfile new file mode 100644 index 0000000000..95b36a8bf3 --- /dev/null +++ b/support/docker/centos/7/base/Dockerfile @@ -0,0 +1,29 @@ +ARG dist=centos +ARG tag=latest +FROM ${dist}:${tag} + +MAINTAINER Sukchan Lee + +RUN yum -y install \ + autoconf \ + libtool \ + gcc \ + flex \ + bison \ + git \ + lksctp-tools-devel \ + libidn-devel \ + gnutls-devel \ + libgcrypt-devel \ + openssl-devel \ + cyrus-sasl-devel \ + libyaml-devel \ + iproute + +RUN yum -y install centos-release-scl && \ + yum -y install devtoolset-7-gcc devtoolset-7-make + +RUN scl enable devtoolset-7 bash + +RUN yum -y install epel-release && \ + yum -y install mongo-c-driver-devel diff --git a/support/docker/centos/7/dev/Dockerfile b/support/docker/centos/7/dev/Dockerfile new file mode 100644 index 0000000000..c7e55dfb3e --- /dev/null +++ b/support/docker/centos/7/dev/Dockerfile @@ -0,0 +1,20 @@ +ARG dist=centos +ARG tag=latest +ARG username=acetcom +FROM ${username}/${dist}-${tag}-build + +MAINTAINER Sukchan Lee + +RUN yum -y install \ + cscope \ + vim \ + sudo \ + iputils \ + net-tools + +ARG username=acetcom +RUN useradd -m --uid=1000 ${username} && \ + echo "${username} ALL=(root) NOPASSWD:ALL" > /etc/sudoers.d/${username} && \ + chmod 0440 /etc/sudoers.d/${username} + +WORKDIR /home/${username} diff --git a/support/docker/centos/latest b/support/docker/centos/latest new file mode 120000 index 0000000000..c7930257df --- /dev/null +++ b/support/docker/centos/latest @@ -0,0 +1 @@ +7 \ No newline at end of file diff --git a/support/docker/check.sh b/support/docker/check.sh index 126b08a57b..f65f63d6b1 100755 --- a/support/docker/check.sh +++ b/support/docker/check.sh @@ -6,4 +6,7 @@ docker-compose -f docker-compose.yml -f docker-compose.test.yml run --rm test TAG=artful docker-compose build TAG=artful docker-compose -f docker-compose.yml -f docker-compose.test.yml run --rm test +DIST=fedora docker-compose build +DIST=fedora docker-compose -f docker-compose.yml -f docker-compose.test.yml run --rm test + docker rm $(docker ps -qa --no-trunc --filter "status=exited") diff --git a/support/docker/debian b/support/docker/debian new file mode 120000 index 0000000000..a989e6c71d --- /dev/null +++ b/support/docker/debian @@ -0,0 +1 @@ +ubuntu/ \ No newline at end of file diff --git a/support/docker/docker-compose.yml b/support/docker/docker-compose.yml index 8b2efa1aa9..de4040f5ca 100644 --- a/support/docker/docker-compose.yml +++ b/support/docker/docker-compose.yml @@ -24,8 +24,9 @@ services: base: build: - context: ./${DIST-ubuntu}/base + context: ./${DIST-ubuntu}/${TAG-latest}/base args: + dist: ${DIST-ubuntu} tag: ${TAG-latest} image: ${USER}/${DIST-ubuntu}-${TAG-latest}-base command: /bin/bash -c "echo 'base' services" @@ -44,14 +45,15 @@ services: dev: build: - context: ./${DIST-ubuntu}/dev + context: ./${DIST-ubuntu}/${TAG-latest}/dev args: + dist: ${DIST-ubuntu} tag: ${TAG-latest} username: ${USER} image: ${USER}/${DIST-ubuntu}-${TAG-latest}-dev depends_on: - mongodb - - base + - build environment: DB_URI: mongodb://mongodb/nextepc cap_add: diff --git a/support/docker/fedora/27/base/Dockerfile b/support/docker/fedora/27/base/Dockerfile new file mode 100644 index 0000000000..814b3ba9fa --- /dev/null +++ b/support/docker/fedora/27/base/Dockerfile @@ -0,0 +1,23 @@ +ARG dist=fedora +ARG tag=latest +FROM ${dist}:${tag} + +MAINTAINER Sukchan Lee + +RUN dnf -y install \ + autoconf \ + libtool \ + gcc \ + flex \ + bison \ + git \ + lksctp-tools-devel \ + libidn-devel \ + gnutls-devel \ + libgcrypt-devel \ + mongo-c-driver-devel \ + openssl-devel \ + cyrus-sasl-devel \ + snappy-devel \ + libyaml-devel \ + iproute diff --git a/support/docker/fedora/27/dev/Dockerfile b/support/docker/fedora/27/dev/Dockerfile new file mode 100644 index 0000000000..0f382c9503 --- /dev/null +++ b/support/docker/fedora/27/dev/Dockerfile @@ -0,0 +1,20 @@ +ARG dist=fedora +ARG tag=latest +ARG username=acetcom +FROM ${username}/${dist}-${tag}-build + +MAINTAINER Sukchan Lee + +RUN dnf -y install \ + cscope \ + vim \ + sudo \ + iputils \ + net-tools + +ARG username=acetcom +RUN useradd -m --uid=1000 ${username} && \ + echo "${username} ALL=(root) NOPASSWD:ALL" > /etc/sudoers.d/${username} && \ + chmod 0440 /etc/sudoers.d/${username} + +WORKDIR /home/${username} diff --git a/support/docker/fedora/latest b/support/docker/fedora/latest new file mode 120000 index 0000000000..a5c750feac --- /dev/null +++ b/support/docker/fedora/latest @@ -0,0 +1 @@ +27 \ No newline at end of file diff --git a/support/docker/ubuntu/artful b/support/docker/ubuntu/artful new file mode 120000 index 0000000000..caf2611bb4 --- /dev/null +++ b/support/docker/ubuntu/artful @@ -0,0 +1 @@ +xenial \ No newline at end of file diff --git a/support/docker/ubuntu/jessie b/support/docker/ubuntu/jessie new file mode 120000 index 0000000000..7907d0c280 --- /dev/null +++ b/support/docker/ubuntu/jessie @@ -0,0 +1 @@ +trusty \ No newline at end of file diff --git a/support/docker/ubuntu/latest b/support/docker/ubuntu/latest new file mode 120000 index 0000000000..caf2611bb4 --- /dev/null +++ b/support/docker/ubuntu/latest @@ -0,0 +1 @@ +xenial \ No newline at end of file diff --git a/support/docker/ubuntu/trusty/base/Dockerfile b/support/docker/ubuntu/trusty/base/Dockerfile new file mode 100644 index 0000000000..b4e91626fd --- /dev/null +++ b/support/docker/ubuntu/trusty/base/Dockerfile @@ -0,0 +1,37 @@ +ARG dist=ubuntu +ARG tag=latest +FROM ${dist}:${tag} + +MAINTAINER Sukchan Lee + +RUN apt-get update && \ + apt-get upgrade -y && \ + apt-get install -y --no-install-recommends \ + autoconf \ + automake \ + libtool \ + gcc \ + flex \ + bison \ + git \ + libsctp-dev \ + libgnutls28-dev \ + libgcrypt-dev \ + libssl-dev \ + libidn11-dev \ + libyaml-dev \ + build-essential \ + iproute2 \ + ca-certificates \ + netbase \ + curl \ + pkg-config && \ + apt-get clean + +WORKDIR /root +RUN curl -SLO "https://github.com/mongodb/mongo-c-driver/releases/download/1.9.2/mongo-c-driver-1.9.2.tar.gz"; \ + tar xzf mongo-c-driver-1.9.2.tar.gz; \ + cd mongo-c-driver-1.9.2; \ + ./configure --disable-automatic-init-and-cleanup; \ + make -j `nproc` install; \ + ldconfig; diff --git a/support/docker/ubuntu/trusty/dev b/support/docker/ubuntu/trusty/dev new file mode 120000 index 0000000000..981b884da7 --- /dev/null +++ b/support/docker/ubuntu/trusty/dev @@ -0,0 +1 @@ +../xenial/dev \ No newline at end of file diff --git a/support/docker/ubuntu/base/Dockerfile b/support/docker/ubuntu/xenial/base/Dockerfile similarity index 93% rename from support/docker/ubuntu/base/Dockerfile rename to support/docker/ubuntu/xenial/base/Dockerfile index 8f7a936c8b..c740641b9b 100644 --- a/support/docker/ubuntu/base/Dockerfile +++ b/support/docker/ubuntu/xenial/base/Dockerfile @@ -1,5 +1,6 @@ +ARG dist=ubuntu ARG tag=latest -FROM ubuntu:${tag} +FROM ${dist}:${tag} MAINTAINER Sukchan Lee @@ -26,5 +27,3 @@ RUN apt-get update && \ netbase \ pkg-config && \ apt-get clean - -COPY setup.sh /root diff --git a/support/docker/ubuntu/dev/Dockerfile b/support/docker/ubuntu/xenial/dev/Dockerfile similarity index 91% rename from support/docker/ubuntu/dev/Dockerfile rename to support/docker/ubuntu/xenial/dev/Dockerfile index 26af240292..f3e01dd0a2 100644 --- a/support/docker/ubuntu/dev/Dockerfile +++ b/support/docker/ubuntu/xenial/dev/Dockerfile @@ -1,6 +1,7 @@ +ARG dist=ubuntu ARG tag=latest ARG username=acetcom -FROM ${username}/ubuntu-${tag}-base +FROM ${username}/${dist}-${tag}-build MAINTAINER Sukchan Lee