Dockerize ActiveMQ

This commit is contained in:
Disassembler 2018-01-23 13:39:50 +01:00
parent 44cf422960
commit daa2948e21
Signed by: Disassembler
GPG Key ID: 524BD33A0EE29499
3 changed files with 64 additions and 0 deletions

15
activemq.sh Executable file
View File

@ -0,0 +1,15 @@
#!/bin/sh
SOURCE_DIR=$(realpath $(dirname "${0}"))/activemq
# Build Docker container
docker build -t activemq ${SOURCE_DIR}
# Configure ActiveMQ
mkdir -p /srv/activemq/data
chown -R 61616:61616 /srv/activemq/data
# Configure Solr service
cp ${SOURCE_DIR}/etc/init.d/activemq /etc/init.d/activemq
rc-update add activemq boot
service activemq start

33
activemq/Dockerfile Normal file
View File

@ -0,0 +1,33 @@
FROM alpine:3.7
MAINTAINER Disassembler <disassembler@dasm.cz>
RUN \
# Install Java 1.8 JRE
apk --no-cache add openjdk8-jre-base paxctl \
# Fix grsec attributes to loosen memory protection restrictions
&& paxctl -cm /usr/lib/jvm/java-1.8-openjdk/jre/bin/java \
&& paxctl -cm /usr/lib/jvm/java-1.8-openjdk/bin/java \
# Cleanup
&& apk del paxctl
RUN \
# Download and install ActiveMQ
wget http://archive.apache.org/dist/activemq/5.15.2/apache-activemq-5.15.2-bin.tar.gz -O /tmp/activemq.tgz \
&& tar xf /tmp/activemq.tgz -C /srv \
&& mv /srv/apache-activemq-5.15.2 /srv/activemq \
&& rm -f /tmp/activemq.tgz \
# Create OS user
&& addgroup -S -g 61616 activemq \
&& adduser -S -u 61616 -h /srv/activemq -s /bin/false -g activemq -G activemq activemq \
&& mkdir /srv/activemq/tmp \
&& chown activemq:activemq /srv/activemq/tmp \
# Configure Java heap size
&& sed -i "s/-Xms64M -Xmx1G/-Xms32M -Xmx256M/" /srv/activemq/bin/env \
# Make start/stop script visible globally
&& ln -s /srv/activemq/bin/activemq /usr/local/bin/activemq
VOLUME ["/srv/activemq/data"]
EXPOSE 61616
USER activemq
CMD ["activemq", "console"]

16
activemq/etc/init.d/activemq Executable file
View File

@ -0,0 +1,16 @@
#!/sbin/openrc-run
description="ActiveMQ docker container"
depend() {
need docker net
use dns logger netmount
}
start() {
/usr/bin/docker run -d --rm --name activemq -h activemq -v /srv/activemq/data:/srv/activemq/data activemq
}
stop() {
/usr/bin/docker stop activemq
}