
Zuul deprecated (and now removed) declaring shared queues at a pipeline level [1]. This patch fixes the syntax to make the gate work again for monasca-common. [1] https://lists.openstack.org/pipermail/openstack-discuss/2022-May/028603.html [2] https://review.opendev.org/c/openstack/monasca-common/+/874297 Change-Id: I0e591770e30c321bcc340b9dd13303259462f30a
127 lines
4.4 KiB
Docker
127 lines
4.4 KiB
Docker
ARG DOCKER_IMAGE=monasca/thresh
|
|
ARG APP_REPO=https://review.opendev.org/openstack/monasca-thresh
|
|
|
|
# Branch, tag or git hash to build from.
|
|
ARG REPO_VERSION=master
|
|
ARG CONSTRAINTS_BRANCH=master
|
|
|
|
FROM storm:1.2.3
|
|
|
|
ENV \
|
|
MAVEN_HOME="/usr/share/maven" \
|
|
JAVA_HOME="/usr/lib/jvm/java-8-openjdk-amd64" \
|
|
ZOOKEEPER_SERVERS="zookeeper" \
|
|
ZOOKEEPER_PORT="2181" \
|
|
ZOOKEEPER_WAIT="true" \
|
|
SUPERVISOR_SLOTS_PORTS="6701,6702" \
|
|
SUPERVISOR_MAX_MB="256" \
|
|
WORKER_MAX_MB="784" \
|
|
NIMBUS_SEEDS="storm-nimbus" \
|
|
NIMBUS_MAX_MB="256" \
|
|
UI_MAX_MB="768" \
|
|
WORKER_LOGS_TO_STDOUT="false" \
|
|
USE_SSL_ENABLED="true"
|
|
|
|
COPY memory.py settings.xml.j2 /
|
|
COPY start.sh mysql_check.py kafka_wait_for_topics.py /
|
|
|
|
COPY templates /templates
|
|
COPY logging /logging
|
|
|
|
ENV \
|
|
KAFKA_URI="kafka:9092" \
|
|
KAFKA_WAIT_FOR_TOPICS=alarm-state-transitions,metrics,events \
|
|
LOGSTASH_FIELDS="service=monasca-thresh" \
|
|
LOG_CONFIG_FILE="/storm/log4j2/cluster.xml" \
|
|
MYSQL_HOST=mysql \
|
|
MYSQL_PORT=3306 \
|
|
MYSQL_USER=thresh \
|
|
MYSQL_PASSWORD=password \
|
|
MYSQL_DB=mon \
|
|
NO_STORM_CLUSTER=false \
|
|
STORM_WAIT_DELAY=5 \
|
|
STORM_WAIT_RETRIES=24 \
|
|
STORM_WAIT_TIMEOUT=20 \
|
|
WORKER_MAX_HEAP_MB=256
|
|
|
|
ARG SKIP_COMMON_TESTS=false
|
|
ARG SKIP_THRESH_TESTS=false
|
|
|
|
ARG CREATION_TIME
|
|
ARG DOCKER_IMAGE
|
|
ARG APP_REPO
|
|
ARG GITHUB_REPO
|
|
ARG REPO_VERSION
|
|
ARG GIT_COMMIT
|
|
ARG CONSTRAINTS_BRANCH
|
|
ARG CONSTRAINTS_FILE
|
|
ARG EXTRA_DEPS
|
|
ARG COMMON_REPO
|
|
ARG COMMON_VERSION
|
|
ARG COMMON_GIT_COMMIT
|
|
|
|
SHELL ["/bin/bash", "-eo", "pipefail", "-c"]
|
|
|
|
RUN \
|
|
mkdir -p /usr/share/man/man1 && \
|
|
apt-get clean && \
|
|
apt-get update && \
|
|
DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends iproute2 net-tools netcat unzip software-properties-common && \
|
|
apt-add-repository -y 'deb http://ftp.de.debian.org/debian sid main' && \
|
|
apt-add-repository -y 'deb http://archive.debian.org/debian-security stretch/updates main' && \
|
|
DEBIAN_FRONTEND=noninteractive apt-get update && \
|
|
DEBIAN_FRONTEND=noninteractive apt-get install -y -o APT::Immediate-Configure=0 --no-install-recommends openjdk-8-jdk && \
|
|
DEBIAN_FRONTEND=noninteractive apt-get install -y -o APT::Immediate-Configure=0 --no-install-recommends maven git python3-pip && \
|
|
DEBIAN_FRONTEND=noninteractive apt-get install -y -o APT::Immediate-Configure=0 --no-install-recommends python3 default-mysql-client && \
|
|
mkdir /root/.m2 && \
|
|
pip3 install --no-cache-dir --upgrade setuptools && \
|
|
pip3 install --no-cache-dir \
|
|
jinja2 \
|
|
pykafka \
|
|
pymysql \
|
|
Templer==1.1.4 && \
|
|
set -x && mkdir /monasca-common && \
|
|
git -C /monasca-common init && \
|
|
git -C /monasca-common remote add origin "$COMMON_REPO" && \
|
|
echo "Cloning monasca-common in version: $COMMON_VERSION" && \
|
|
git -C /monasca-common fetch origin "$COMMON_VERSION" && \
|
|
git -C /monasca-common reset --hard FETCH_HEAD && \
|
|
cd /monasca-common && \
|
|
mvn --quiet -B clean install $([ "$SKIP_COMMON_TESTS" = "true" ] && echo "-DskipTests") && \
|
|
cd / && \
|
|
mkdir /app && \
|
|
git -C /app init && \
|
|
git -C /app remote add origin "$APP_REPO" && \
|
|
echo "Cloning app in version: $REPO_VERSION" && \
|
|
git -C /app fetch origin "$REPO_VERSION" && \
|
|
git -C /app reset --hard FETCH_HEAD && \
|
|
cd /app/thresh && \
|
|
mvn --quiet -B clean package $([ "$SKIP_THRESH_TESTS" = "true" ] && echo "-DskipTests") && \
|
|
cp /app/thresh/target/*-SNAPSHOT-shaded.jar /monasca-thresh.jar && \
|
|
cd / && \
|
|
# Save info about build to `/VERSIONS` file.
|
|
printf "App: %s\\n" "$DOCKER_IMAGE" >> /VERSIONS && \
|
|
printf "Repository: %s\\n" "$APP_REPO" >> /VERSIONS && \
|
|
printf "Version: %s\\n" "$REPO_VERSION" >> /VERSIONS && \
|
|
printf "Revision: %s\\n" "$GIT_COMMIT" >> /VERSIONS && \
|
|
printf "Build date: %s\\n" "$CREATION_TIME" >> /VERSIONS && \
|
|
printf "Monasca-common version: %s\\n" "$COMMON_VERSION" \
|
|
>> /VERSIONS && \
|
|
printf "Monasca-common revision: %s\\n" \
|
|
"$COMMON_GIT_COMMIT" >> /VERSIONS && \
|
|
printf "Constraints file: %s\\n" \
|
|
"$CONSTRAINTS_FILE"?h="$CONSTRAINTS_BRANCH" >> /VERSIONS && \
|
|
apt-get remove -y apt-utils && \
|
|
apt-get remove -y maven git python3-pip software-properties-common && \
|
|
apt-get -y autoremove && \
|
|
rm -rf \
|
|
/app \
|
|
/monasca-common \
|
|
/root/.cache/ \
|
|
/root/.m2/repository \
|
|
/tmp/* \
|
|
/var/cache/apt/* \
|
|
/var/log/*
|
|
|
|
ENTRYPOINT ["/start.sh"]
|