diff --git a/.circleci/config.yml b/.circleci/config.yml new file mode 100644 index 0000000..0ab251a --- /dev/null +++ b/.circleci/config.yml @@ -0,0 +1,31 @@ +version: 2.1 + +orbs: + utils: vimond/utils@volatile + +jobs: + build: + docker: + - image: cimg/aws:2023.04 + environment: + IMAGE_NAME: zk-exhibitor + steps: + - checkout + - setup_remote_docker: + docker_layer_caching: true + - utils/docker-login + - utils/docker-build: + platforms: "linux/amd64" + image-name: "IMAGE_NAME" + push: true + - utils/prisma-cloud-scan-image: + pull-from-registry: true + prisma-cloud-install-cli: true + image-name: "$IMAGE_NAME" + +workflows: + build: + jobs: + - build: + context: + - vimond-global \ No newline at end of file diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..a97f129 --- /dev/null +++ b/.gitignore @@ -0,0 +1,2 @@ +/.idea/ +/tmp/ diff --git a/Dockerfile b/Dockerfile index 4eb2371..9f26354 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,37 +1,29 @@ -FROM debian:7.8 +FROM debian:9.13 MAINTAINER Mike Babineau michael.babineau@gmail.com ENV \ - ZK_RELEASE="http://www.apache.org/dist/zookeeper/zookeeper-3.4.6/zookeeper-3.4.6.tar.gz" \ - EXHIBITOR_POM="https://raw.githubusercontent.com/Netflix/exhibitor/d911a16d704bbe790d84bbacc655ef050c1f5806/exhibitor-standalone/src/main/resources/buildscripts/standalone/maven/pom.xml" \ + EXHIBITOR_POM="https://raw.githubusercontent.com/soabase/exhibitor/v1.5.6/exhibitor-standalone/src/main/resources/buildscripts/standalone/maven/pom.xml" \ # Append "+" to ensure the package doesn't get purged - BUILD_DEPS="curl maven openjdk-7-jdk+" \ + BUILD_DEPS="curl maven openjdk-8-jdk+" \ DEBIAN_FRONTEND="noninteractive" # Use one step so we can remove intermediate dependencies and minimize size -RUN \ - # Install dependencies - apt-get update \ - && apt-get install -y --allow-unauthenticated --no-install-recommends $BUILD_DEPS \ - - # Default DNS cache TTL is -1. DNS records, like, change, man. - && grep '^networkaddress.cache.ttl=' /etc/java-7-openjdk/security/java.security || echo 'networkaddress.cache.ttl=60' >> /etc/java-7-openjdk/security/java.security \ - - # Install ZK - && curl -Lo /tmp/zookeeper.tgz $ZK_RELEASE \ - && mkdir -p /opt/zookeeper/transactions /opt/zookeeper/snapshots \ - && tar -xzf /tmp/zookeeper.tgz -C /opt/zookeeper --strip=1 \ - && rm /tmp/zookeeper.tgz \ - - # Install Exhibitor - && mkdir -p /opt/exhibitor \ - && curl -Lo /opt/exhibitor/pom.xml $EXHIBITOR_POM \ - && mvn -f /opt/exhibitor/pom.xml package \ - && ln -s /opt/exhibitor/target/exhibitor*jar /opt/exhibitor/exhibitor.jar \ - - # Remove build-time dependencies - && apt-get purge -y --auto-remove $BUILD_DEPS \ - && rm -rf /var/lib/apt/lists/* +RUN apt-get update \ + && apt-get install -y --allow-unauthenticated --no-install-recommends procps \ + && apt-get install -y --allow-unauthenticated --no-install-recommends $BUILD_DEPS \ + # Default DNS cache TTL is -1. DNS records, like, change, man. && \ + && grep '^networkaddress.cache.ttl=' /etc/java-8-openjdk/security/java.security || echo 'networkaddress.cache.ttl=60' >> /etc/java-8-openjdk/security/java.security \ + # Install Exhibitor \ + && mkdir -p /opt/exhibitor \ + && curl -Lo /opt/exhibitor/pom.xml $EXHIBITOR_POM \ + && mvn -f /opt/exhibitor/pom.xml package \ + && ln -s /opt/exhibitor/target/exhibitor*jar /opt/exhibitor/exhibitor.jar \ + # Remove build-time dependencies \ + && apt-get purge -y --auto-remove $BUILD_DEPS \ + && rm -rf /var/lib/apt/lists/* + +# Copy in our vended version of zk +ADD zk-dist/zookeeper-3.4.6.tar.gz /opt/ # Add the wrapper script that sets up configs without using AWS ADD include/vimond-wrapper.sh /opt/exhibitor/wrapper.sh diff --git a/build_run.sh b/build_run.sh new file mode 100755 index 0000000..af8e640 --- /dev/null +++ b/build_run.sh @@ -0,0 +1,7 @@ +#!/usr/bin/env bash +set -x + +docker build . -t local/zk +docker compose down +docker compose rm --force +docker compose up diff --git a/docker-compose.yml b/docker-compose.yml new file mode 100644 index 0000000..8538964 --- /dev/null +++ b/docker-compose.yml @@ -0,0 +1,35 @@ +version: "3.9" +services: + zk1: + cap_add: + - NET_ADMIN + - NET_RAW + image: local/zk + ports: + - "8181:8181" + environment: + - AWS_ACCESS_KEY_ID + - AWS_SECRET_ACCESS_KEY + - AWS_REGION + - S3_PREFIX=dvltest-zk-test + - S3_BUCKET=dvl-zk-exhibitor-testing + zk2: + environment: + - AWS_ACCESS_KEY_ID + - AWS_SECRET_ACCESS_KEY + - AWS_REGION + - S3_PREFIX=dvltest-zk-test + - S3_BUCKET=dvl-zk-exhibitor-testing + image: local/zk + ports: + - "8182:8181" + zk3: + environment: + - AWS_ACCESS_KEY_ID + - AWS_SECRET_ACCESS_KEY + - AWS_REGION + - S3_PREFIX=dvltest-zk-test + - S3_BUCKET=dvl-zk-exhibitor-testing + image: local/zk + ports: + - "8183:8181" \ No newline at end of file diff --git a/zk-dist/zookeeper-3.4.6.tar.gz b/zk-dist/zookeeper-3.4.6.tar.gz new file mode 100644 index 0000000..adf5154 Binary files /dev/null and b/zk-dist/zookeeper-3.4.6.tar.gz differ