can now build centos8 docker container with Redis support

This commit is contained in:
Grant Limberg 2020-05-12 15:17:57 -07:00
parent 663df9118a
commit c9f942f79b
No known key found for this signature in database
GPG Key ID: 2BA62CCABBB4095A
4 changed files with 29 additions and 27 deletions

2
.dockerignore Normal file
View File

@ -0,0 +1,2 @@
.git/
workspace/

View File

@ -1,22 +1,22 @@
# Dockerfile for ZeroTier Central Controllers # Dockerfile for ZeroTier Central Controllers
FROM centos:7 as builder FROM centos:8 as builder
MAINTAINER Adam Ierymekno <adam.ierymenko@zerotier.com>, Grant Limberg <grant.limberg@zerotier.com> MAINTAINER Adam Ierymekno <adam.ierymenko@zerotier.com>, Grant Limberg <grant.limberg@zerotier.com>
ARG git_branch=master ARG git_branch=master
RUN yum update -y RUN yum update -y
RUN yum install -y https://download.postgresql.org/pub/repos/yum/reporpms/EL-7-x86_64/pgdg-redhat-repo-latest.noarch.rpm RUN yum install -y https://download.postgresql.org/pub/repos/yum/reporpms/EL-8-x86_64/pgdg-redhat-repo-latest.noarch.rpm && dnf -qy module disable postgresql
RUN yum -y install epel-release && yum -y update && yum clean all RUN yum -y install epel-release && yum -y update && yum clean all
RUN yum groupinstall -y "Development Tools" RUN yum groupinstall -y "Development Tools"
RUN yum install -y bash postgresql10 postgresql10-devel libpqxx-devel glibc-static libstdc++-static clang jemalloc jemalloc-devel RUN yum install -y bash postgresql10 postgresql10-devel libpqxx-devel clang jemalloc jemalloc-devel
# RUN git clone http://git.int.zerotier.com/zerotier/ZeroTierOne.git # RUN git clone http://git.int.zerotier.com/zerotier/ZeroTierOne.git
# RUN if [ "$git_branch" != "master" ]; then cd ZeroTierOne && git checkout -b $git_branch origin/$git_branch; fi # RUN if [ "$git_branch" != "master" ]; then cd ZeroTierOne && git checkout -b $git_branch origin/$git_branch; fi
ADD . /ZeroTierOne ADD . /ZeroTierOne
RUN cd ZeroTierOne && make clean && make central-controller RUN cd ZeroTierOne && make clean && make central-controller
FROM centos:7 FROM centos:8
RUN yum install -y yum install https://download.postgresql.org/pub/repos/yum/reporpms/EL-7-x86_64/pgdg-redhat-repo-latest.noarch.rpm && yum -y install epel-release && yum -y update && yum clean all RUN yum install -y https://download.postgresql.org/pub/repos/yum/reporpms/EL-8-x86_64/pgdg-redhat-repo-latest.noarch.rpm && dnf -qy module disable postgresql && yum -y install epel-release && yum -y update && yum clean all
RUN yum install -y jemalloc jemalloc-devel postgresql10 RUN yum install -y jemalloc jemalloc-devel postgresql10
COPY --from=builder /ZeroTierOne/zerotier-one /usr/local/bin/zerotier-one COPY --from=builder /ZeroTierOne/zerotier-one /usr/local/bin/zerotier-one

View File

@ -25,30 +25,30 @@ if [ -z "$ZT_DB_PASSWORD" ]; then
exit 1 exit 1
fi fi
RMQ="" REDIS=""
if [ "$ZT_USE_RABBITMQ" == "true" ]; then if [ "$ZT_USE_REDIS" == "true" ]; then
if [ -z "$RABBITMQ_HOST" ]; then if [ -z "$ZT_REDIS_HOST" ]; then
echo '*** FAILED: RABBITMQ_HOST environment variable not defined' echo '*** FAILED: ZT_REDIS_HOST environment variable not defined'
exit 1 exit 1
fi fi
if [ -z "$RABBITMQ_PORT" ]; then
echo '*** FAILED: RABBITMQ_PORT environment variable not defined' if [ -z "$ZT_REDIS_PORT" ]; then
echo '*** FAILED: ZT_REDIS_PORT enivronment variable not defined'
exit 1 exit 1
fi fi
if [ -z "$RABBITMQ_USERNAME" ]; then
echo '*** FAILED: RABBITMQ_USERNAME environment variable not defined' if [ -z "$ZT_REDIS_CLUSTER_MODE" ];
echo '*** FAILED: ZT_REDIS_CLUSTER_MODE environment variable not defined'
exit 1 exit 1
fi fi
if [ -z "$RABBITMQ_PASSWORD" ]; then
echo '*** FAILED: RABBITMQ_PASSWORD environment variable not defined' REDIS="\"redis\": {
exit 1 \"hostname\": \"${ZT_REDIS_HOST}\",
fi \"port\": ${ZT_REDIS_PORT},
RMQ=", \"rabbitmq\": { \"clusterMode\": ${ZT_REDIS_CLUSTER_MODE},
\"host\": \"${RABBITMQ_HOST}\", \"password\": \"${ZT_REDIS_PASSWORD}\"
\"port\": ${RABBITMQ_PORT}, }
\"username\": \"${RABBITMQ_USERNAME}\", "
\"password\": \"${RABBITMQ_PASSWORD}\"
}"
fi fi
mkdir -p /var/lib/zerotier-one mkdir -p /var/lib/zerotier-one
@ -62,14 +62,14 @@ DEFAULT_PORT=9993
echo "{ echo "{
\"settings\": { \"settings\": {
\"controllerDbPath\": \"postgres:host=${ZT_DB_HOST} port=${ZT_DB_PORT} dbname=${ZT_DB_NAME} user=${ZT_DB_USER} password=${ZT_DB_PASSWORD} sslmode=prefer sslcert=${DB_CLIENT_CERT} sslkey=${DB_CLIENT_KEY} sslrootcert=${DB_SERVER_CA}\",
\"portMappingEnabled\": true, \"portMappingEnabled\": true,
\"softwareUpdate\": \"disable\", \"softwareUpdate\": \"disable\",
\"interfacePrefixBlacklist\": [ \"interfacePrefixBlacklist\": [
\"inot\", \"inot\",
\"nat64\" \"nat64\"
], ],
\"controllerDbPath\": \"postgres:host=${ZT_DB_HOST} port=${ZT_DB_PORT} dbname=${ZT_DB_NAME} user=${ZT_DB_USER} password=${ZT_DB_PASSWORD} sslmode=prefer sslcert=${DB_CLIENT_CERT} sslkey=${DB_CLIENT_KEY} sslrootcert=${DB_SERVER_CA}\" ${REDIS}
${RMQ}
} }
} }
" > /var/lib/zerotier-one/local.conf " > /var/lib/zerotier-one/local.conf

View File

@ -152,8 +152,8 @@ official: FORCE
make ZT_OFFICIAL_RELEASE=1 mac-dist-pkg make ZT_OFFICIAL_RELEASE=1 mac-dist-pkg
central-controller-docker: FORCE central-controller-docker: FORCE
#docker build --no-cache -t registry.zerotier.com/zerotier-central/ztcentral-controller:${TIMESTAMP} -f ext/central-controller-docker/Dockerfile --build-arg git_branch=$(shell git name-rev --name-only HEAD) . docker build --no-cache -t registry.zerotier.com/zerotier-central/ztcentral-controller:${TIMESTAMP} -f ext/central-controller-docker/Dockerfile --build-arg git_branch=$(shell git name-rev --name-only HEAD) .
docker build -t registry.zerotier.com/zerotier-central/ztcentral-controller:${TIMESTAMP} -f ext/central-controller-docker/Dockerfile --build-arg git_branch=$(shell git name-rev --name-only HEAD) .
clean: clean:
rm -rf MacEthernetTapAgent *.dSYM build-* *.a *.pkg *.dmg *.o node/*.o controller/*.o service/*.o osdep/*.o ext/http-parser/*.o $(CORE_OBJS) $(ONE_OBJS) zerotier-one zerotier-idtool zerotier-selftest zerotier-cli zerotier doc/node_modules macui/build zt1_update_$(ZT_BUILD_PLATFORM)_$(ZT_BUILD_ARCHITECTURE)_* rm -rf MacEthernetTapAgent *.dSYM build-* *.a *.pkg *.dmg *.o node/*.o controller/*.o service/*.o osdep/*.o ext/http-parser/*.o $(CORE_OBJS) $(ONE_OBJS) zerotier-one zerotier-idtool zerotier-selftest zerotier-cli zerotier doc/node_modules macui/build zt1_update_$(ZT_BUILD_PLATFORM)_$(ZT_BUILD_ARCHITECTURE)_*