lxc-build + CKAN test
This commit is contained in:
parent
c3255cb00d
commit
deacaa94be
@ -1,23 +0,0 @@
|
|||||||
FROM java
|
|
||||||
LABEL maintainer="Disassembler <disassembler@dasm.cz>"
|
|
||||||
|
|
||||||
RUN \
|
|
||||||
# Download and install ActiveMQ
|
|
||||||
wget http://archive.apache.org/dist/activemq/5.15.5/apache-activemq-5.15.5-bin.tar.gz -O /tmp/activemq.tgz \
|
|
||||||
&& tar xf /tmp/activemq.tgz -C /srv \
|
|
||||||
&& mv /srv/apache-activemq-5.15.5 /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
|
|
||||||
|
|
||||||
COPY docker/ /
|
|
||||||
|
|
||||||
VOLUME ["/srv/activemq/data"]
|
|
||||||
EXPOSE 61616
|
|
||||||
|
|
||||||
CMD ["s6-svscan", "/etc/services.d"]
|
|
@ -1,19 +0,0 @@
|
|||||||
#!/sbin/openrc-run
|
|
||||||
|
|
||||||
description="ActiveMQ docker container"
|
|
||||||
|
|
||||||
depend() {
|
|
||||||
need docker
|
|
||||||
}
|
|
||||||
|
|
||||||
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
|
|
||||||
}
|
|
29
activemq/lxcfile
Normal file
29
activemq/lxcfile
Normal file
@ -0,0 +1,29 @@
|
|||||||
|
IMAGE activemq
|
||||||
|
LAYER shared/alpine
|
||||||
|
LAYER shared/java
|
||||||
|
LAYER activemq/activemq
|
||||||
|
|
||||||
|
SCRIPT
|
||||||
|
# Download and install ActiveMQ
|
||||||
|
wget http://archive.apache.org/dist/activemq/5.15.5/apache-activemq-5.15.5-bin.tar.gz -O /tmp/activemq.tgz
|
||||||
|
tar xf /tmp/activemq.tgz -C /srv
|
||||||
|
mv /srv/apache-activemq-5.15.5 /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
|
||||||
|
RUN
|
||||||
|
|
||||||
|
COPY lxc/ /
|
||||||
|
|
||||||
|
CMD /bin/s6-svscan /etc/services.d
|
||||||
|
|
||||||
|
LAYER activemq/delta0
|
||||||
|
|
||||||
|
MOUNT /srv/activemq/data srv/activemq/data
|
5
activemq.sh → activemq/setup.sh
Executable file → Normal file
5
activemq.sh → activemq/setup.sh
Executable file → Normal file
@ -1,10 +1,9 @@
|
|||||||
#!/bin/sh
|
#!/bin/sh
|
||||||
set -e
|
set -e
|
||||||
|
|
||||||
SOURCE_DIR=$(realpath $(dirname "${0}"))/activemq
|
SOURCE_DIR=$(realpath $(dirname "${0}"))/activemq/setup
|
||||||
|
|
||||||
# Build Docker container
|
# Create service
|
||||||
docker build -t activemq ${SOURCE_DIR}
|
|
||||||
cp ${SOURCE_DIR}/etc/init.d/activemq /etc/init.d/activemq
|
cp ${SOURCE_DIR}/etc/init.d/activemq /etc/init.d/activemq
|
||||||
rc-update -u
|
rc-update -u
|
||||||
|
|
15
activemq/setup/etc/init.d/activemq
Normal file
15
activemq/setup/etc/init.d/activemq
Normal file
@ -0,0 +1,15 @@
|
|||||||
|
#!/sbin/openrc-run
|
||||||
|
|
||||||
|
description="ActiveMQ docker container"
|
||||||
|
|
||||||
|
depend() {
|
||||||
|
need lxc
|
||||||
|
}
|
||||||
|
|
||||||
|
start() {
|
||||||
|
/usr/bin/lxc-start -n activemq
|
||||||
|
}
|
||||||
|
|
||||||
|
stop() {
|
||||||
|
/usr/bin/lxc-stop -n activemq
|
||||||
|
}
|
@ -1,52 +0,0 @@
|
|||||||
#!/bin/sh
|
|
||||||
set -e
|
|
||||||
|
|
||||||
SOURCE_DIR=$(realpath $(dirname "${0}"))/basic-runtimes
|
|
||||||
|
|
||||||
# Build basic Alpine image
|
|
||||||
mkdir -p /var/lib/lxc/build
|
|
||||||
mkdir -p /var/lib/lxc/shared/alpine
|
|
||||||
wget https://github.com/gliderlabs/docker-alpine/raw/2bfe6510ee31d86cfeb2f37587f4cf866f28ffbc/versions/library-3.8/x86_64/rootfs.tar.xz -O - | tar xJf - -C /var/lib/lxc/shared/alpine
|
|
||||||
touch /var/lib/lxc/shared/alpine/etc/resolv.conf
|
|
||||||
cp ${SOURCE_DIR}/var/lib/lxc/build/config /var/lib/lxc/build/config
|
|
||||||
lxc-execute -n build -- /bin/sh -c 'apk --no-cache add s6'
|
|
||||||
|
|
||||||
# Build Java overlay
|
|
||||||
mkdir /var/lib/lxc/shared/java
|
|
||||||
sed -i 's|^lxc\.rootfs\.path.*|lxc.rootfs.path = overlay:/var/lib/lxc/shared/alpine:/var/lib/lxc/shared/java|' /var/lib/lxc/build/config
|
|
||||||
lxc-execute -n build -- /bin/sh -c 'apk --no-cache add openjdk8-jre-base'
|
|
||||||
|
|
||||||
# Build PHP overlay
|
|
||||||
mkdir /var/lib/lxc/shared/php
|
|
||||||
sed -i 's|^lxc\.rootfs\.path.*|lxc.rootfs.path = overlay:/var/lib/lxc/shared/alpine:/var/lib/lxc/shared/php|' /var/lib/lxc/build/config
|
|
||||||
lxc-execute -n build -- /bin/sh -c 'apk --no-cache add nginx php7 php7-ctype php7-fpm php7-gd php7-json php7-mbstring php7-mcrypt php7-opcache php7-session'
|
|
||||||
|
|
||||||
# Build libxml overlay
|
|
||||||
mkdir /var/lib/lxc/shared/libxml
|
|
||||||
sed -i 's|^lxc\.rootfs\.path.*|lxc.rootfs.path = overlay:/var/lib/lxc/shared/alpine:/var/lib/lxc/shared/libxml|' /var/lib/lxc/build/config
|
|
||||||
lxc-execute -n build -- /bin/sh -c 'apk --no-cache add libxml2 libxslt'
|
|
||||||
|
|
||||||
# Build Python2 overlay
|
|
||||||
mkdir /var/lib/lxc/shared/python2
|
|
||||||
sed -i 's|^lxc\.rootfs\.path.*|lxc.rootfs.path = overlay:/var/lib/lxc/shared/alpine:/var/lib/lxc/shared/libxml:/var/lib/lxc/shared/python2|' /var/lib/lxc/build/config
|
|
||||||
lxc-execute -n build -- /bin/sh -c 'apk --no-cache add python2'
|
|
||||||
|
|
||||||
# Build Python3 overlay
|
|
||||||
mkdir /var/lib/lxc/shared/python3
|
|
||||||
sed -i 's|^lxc\.rootfs\.path.*|lxc.rootfs.path = overlay:/var/lib/lxc/shared/alpine:/var/lib/lxc/shared/libxml:/var/lib/lxc/shared/python3|' /var/lib/lxc/build/config
|
|
||||||
lxc-execute -n build -- /bin/sh -c 'apk --no-cache add python3 && ln -s /usr/bin/python3 /usr/bin/python'
|
|
||||||
|
|
||||||
# Build Ruby overlay
|
|
||||||
mkdir /var/lib/lxc/shared/ruby
|
|
||||||
sed -i 's|^lxc\.rootfs\.path.*|lxc.rootfs.path = overlay:/var/lib/lxc/shared/alpine:/var/lib/lxc/shared/ruby|' /var/lib/lxc/build/config
|
|
||||||
cp -p ${SOURCE_DIR}/ruby.sh /var/lib/lxc/shared/ruby/ruby.sh
|
|
||||||
lxc-execute -n build -- /ruby.sh
|
|
||||||
rm /var/lib/lxc/shared/ruby/ruby.sh
|
|
||||||
|
|
||||||
# Build Tomcat overlay
|
|
||||||
mkdir /var/lib/lxc/shared/tomcat
|
|
||||||
sed -i 's|^lxc\.rootfs\.path.*|lxc.rootfs.path = overlay:/var/lib/lxc/shared/alpine:/var/lib/lxc/shared/java:/var/lib/lxc/shared/tomcat|' /var/lib/lxc/build/config
|
|
||||||
cp -p ${SOURCE_DIR}/tomcat.sh /var/lib/lxc/shared/tomcat/tomcat.sh
|
|
||||||
lxc-execute -n build -- /tomcat.sh
|
|
||||||
rm /var/lib/lxc/shared/tomcat/ruby.sh
|
|
||||||
cp -rp ${SOURCE_DIR}/tomcat/ /var/lib/lxc/shared/tomcat/
|
|
5
basic-runtimes/alpine.lxcfile
Normal file
5
basic-runtimes/alpine.lxcfile
Normal file
@ -0,0 +1,5 @@
|
|||||||
|
LAYER shared/alpine
|
||||||
|
|
||||||
|
SCRIPT
|
||||||
|
apk --no-cache add s6
|
||||||
|
RUN
|
6
basic-runtimes/java.lxcfile
Normal file
6
basic-runtimes/java.lxcfile
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
LAYER shared/alpine
|
||||||
|
LAYER shared/java
|
||||||
|
|
||||||
|
SCRIPT
|
||||||
|
apk --no-cache add openjdk8-jre-base
|
||||||
|
RUN
|
6
basic-runtimes/libxml.lxcfile
Normal file
6
basic-runtimes/libxml.lxcfile
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
LAYER shared/alpine
|
||||||
|
LAYER shared/libxml
|
||||||
|
|
||||||
|
SCRIPT
|
||||||
|
apk --no-cache add libxml2 libxslt
|
||||||
|
RUN
|
6
basic-runtimes/php.lxcfile
Normal file
6
basic-runtimes/php.lxcfile
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
LAYER shared/alpine
|
||||||
|
LAYER shared/php
|
||||||
|
|
||||||
|
SCRIPT
|
||||||
|
apk --no-cache add nginx php7 php7-ctype php7-fpm php7-gd php7-json php7-mbstring php7-mcrypt php7-opcache php7-session
|
||||||
|
RUN
|
7
basic-runtimes/python2.lxcfile
Normal file
7
basic-runtimes/python2.lxcfile
Normal file
@ -0,0 +1,7 @@
|
|||||||
|
LAYER shared/alpine
|
||||||
|
LAYER shared/libxml
|
||||||
|
LAYER shared/python2
|
||||||
|
|
||||||
|
SCRIPT
|
||||||
|
apk --no-cache add python2
|
||||||
|
RUN
|
8
basic-runtimes/python3.lxcfile
Normal file
8
basic-runtimes/python3.lxcfile
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
LAYER shared/alpine
|
||||||
|
LAYER shared/libxml
|
||||||
|
LAYER shared/python2
|
||||||
|
|
||||||
|
SCRIPT
|
||||||
|
apk --no-cache add python3
|
||||||
|
ln -s /usr/bin/python3 /usr/bin/python
|
||||||
|
RUN
|
39
basic-runtimes/ruby.lxcfile
Normal file
39
basic-runtimes/ruby.lxcfile
Normal file
@ -0,0 +1,39 @@
|
|||||||
|
LAYER shared/alpine
|
||||||
|
LAYER shared/ruby
|
||||||
|
|
||||||
|
SCRIPT
|
||||||
|
# Install Ruby runtime dependencies
|
||||||
|
apk --no-cache add gdbm libressl readline zlib
|
||||||
|
|
||||||
|
# Install Ruby build dependencies
|
||||||
|
apk --no-cache add --virtual .deps build-base autoconf gdbm-dev libressl-dev linux-headers readline-dev zlib-dev
|
||||||
|
|
||||||
|
# Download and unpack Ruby
|
||||||
|
wget http://cache.ruby-lang.org/pub/ruby/2.3/ruby-2.3.6.tar.xz -O ruby.tar.xz
|
||||||
|
mkdir -p /usr/src/ruby
|
||||||
|
tar xJf ruby.tar.xz -C /usr/src/ruby --strip-components=1
|
||||||
|
rm ruby.tar.xz
|
||||||
|
cd /usr/src/ruby
|
||||||
|
|
||||||
|
# Hackfix to suppress "Insecure world writable dir" warning
|
||||||
|
sed -ni 'p;13a #define ENABLE_PATH_CHECK 0' file.c
|
||||||
|
|
||||||
|
# Configure compilation + hackfix to detect isnan/isinf macros
|
||||||
|
autoconf
|
||||||
|
ac_cv_func_isnan=yes ac_cv_func_isinf=yes ./configure --build=x86_64-linux-musl --disable-install-doc --enable-shared
|
||||||
|
|
||||||
|
# Compile and install Ruby
|
||||||
|
make -j $(nproc)
|
||||||
|
make install
|
||||||
|
|
||||||
|
# Install RubyGems and Bundler
|
||||||
|
mkdir -p /usr/local/etc
|
||||||
|
echo -e 'install: --no-document\nupdate: --no-document' >/usr/local/etc/gemrc
|
||||||
|
gem update --system
|
||||||
|
|
||||||
|
# Cleanup
|
||||||
|
cd /tmp
|
||||||
|
rm -r /usr/src/ruby
|
||||||
|
apk --no-cache del .deps
|
||||||
|
rm -rf /root/.gem
|
||||||
|
RUN
|
@ -1,34 +0,0 @@
|
|||||||
# Install Ruby runtime dependencies
|
|
||||||
apk --no-cache add gdbm libressl readline zlib
|
|
||||||
|
|
||||||
# Install Ruby build dependencies
|
|
||||||
apk --no-cache add --virtual .deps build-base autoconf gdbm-dev libressl-dev linux-headers readline-dev zlib-dev
|
|
||||||
|
|
||||||
# Download and unpack Ruby
|
|
||||||
wget http://cache.ruby-lang.org/pub/ruby/2.3/ruby-2.3.6.tar.xz -O ruby.tar.xz
|
|
||||||
mkdir -p /usr/src/ruby
|
|
||||||
tar -xJf ruby.tar.xz -C /usr/src/ruby --strip-components=1
|
|
||||||
rm ruby.tar.xz
|
|
||||||
cd /usr/src/ruby
|
|
||||||
|
|
||||||
# Hackfix to suppress "Insecure world writable dir" warning
|
|
||||||
sed -ni 'p;13a #define ENABLE_PATH_CHECK 0' file.c
|
|
||||||
|
|
||||||
# Configure compilation + hackfix to detect isnan/isinf macros
|
|
||||||
autoconf
|
|
||||||
ac_cv_func_isnan=yes ac_cv_func_isinf=yes ./configure --build=x86_64-linux-musl --disable-install-doc --enable-shared
|
|
||||||
|
|
||||||
# Compile and install Ruby
|
|
||||||
make -j $(nproc)
|
|
||||||
make install
|
|
||||||
|
|
||||||
# Install RubyGems and Bundler
|
|
||||||
mkdir -p /usr/local/etc
|
|
||||||
echo -e 'install: --no-document\nupdate: --no-document' >/usr/local/etc/gemrc
|
|
||||||
gem update --system
|
|
||||||
|
|
||||||
# Cleanup
|
|
||||||
cd /tmp
|
|
||||||
rm -r /usr/src/ruby
|
|
||||||
apk --no-cache del .deps
|
|
||||||
rm -rf /root/.gem
|
|
19
basic-runtimes/tomcat.lxcfile
Normal file
19
basic-runtimes/tomcat.lxcfile
Normal file
@ -0,0 +1,19 @@
|
|||||||
|
LAYER shared/alpine
|
||||||
|
LAYER shared/java
|
||||||
|
LAYER shared/tomcat
|
||||||
|
|
||||||
|
SCRIPT
|
||||||
|
# Install Tomcat 8
|
||||||
|
wget http://mirror.hosting90.cz/apache/tomcat/tomcat-8/v8.0.53/bin/apache-tomcat-8.0.53.tar.gz -O /tmp/apache-tomcat-8.tgz
|
||||||
|
tar xf /tmp/apache-tomcat-8.tgz -C /srv
|
||||||
|
mv /srv/apache-tomcat-8.0.53 /srv/tomcat
|
||||||
|
|
||||||
|
# Make catalina.sh available globally
|
||||||
|
ln -s /srv/tomcat/bin/catalina.sh /usr/bin/catalina.sh
|
||||||
|
|
||||||
|
# Cleanup
|
||||||
|
rm -rf /srv/tomcat/webapps/ROOT /srv/tomcat/webapps/docs /srv/tomcat/webapps/examples /srv/tomcat/webapps/host-manager /srv/tomcat/webapps/manager
|
||||||
|
rm -f /tmp/apache-tomcat-8.tgz
|
||||||
|
RUN
|
||||||
|
|
||||||
|
COPY lxc-tomcat/ /
|
@ -1,11 +0,0 @@
|
|||||||
# Install Tomcat 8
|
|
||||||
wget http://mirror.hosting90.cz/apache/tomcat/tomcat-8/v8.0.53/bin/apache-tomcat-8.0.53.tar.gz -O /tmp/apache-tomcat-8.tgz
|
|
||||||
tar xf /tmp/apache-tomcat-8.tgz -C /srv
|
|
||||||
mv /srv/apache-tomcat-8.0.53 /srv/tomcat
|
|
||||||
|
|
||||||
# Make catalina.sh available globally
|
|
||||||
ln -s /srv/tomcat/bin/catalina.sh /usr/bin/catalina.sh
|
|
||||||
|
|
||||||
# Cleanup
|
|
||||||
rm -rf /srv/tomcat/webapps/ROOT /srv/tomcat/webapps/docs /srv/tomcat/webapps/examples /srv/tomcat/webapps/host-manager /srv/tomcat/webapps/manager
|
|
||||||
rm -f /tmp/apache-tomcat-8.tgz
|
|
@ -1,24 +0,0 @@
|
|||||||
# Hostname
|
|
||||||
lxc.uts.name = build
|
|
||||||
|
|
||||||
# Network
|
|
||||||
lxc.net.0.type = veth
|
|
||||||
lxc.net.0.link = lxcbr0
|
|
||||||
lxc.net.0.flags = up
|
|
||||||
lxc.net.0.ipv4.address = 172.17.0.2/16
|
|
||||||
lxc.net.0.ipv4.gateway = auto
|
|
||||||
|
|
||||||
# Volumes
|
|
||||||
lxc.rootfs.path = /var/lib/lxc/shared/alpine
|
|
||||||
|
|
||||||
# Mounts
|
|
||||||
lxc.mount.entry = /etc/hosts etc/hosts none bind 0 0
|
|
||||||
lxc.mount.entry = /etc/resolv.conf etc/resolv.conf none bind 0 0
|
|
||||||
|
|
||||||
# Halt
|
|
||||||
lxc.signal.halt = SIGTERM
|
|
||||||
|
|
||||||
# Other
|
|
||||||
lxc.arch = x86_64
|
|
||||||
lxc.cap.drop = sys_admin
|
|
||||||
lxc.include = /usr/share/lxc/config/alpine.common.conf
|
|
@ -1,6 +0,0 @@
|
|||||||
FROM alpine:3.8
|
|
||||||
LABEL maintainer="Disassembler <disassembler@dasm.cz>"
|
|
||||||
|
|
||||||
RUN \
|
|
||||||
# Install S6 supervisor
|
|
||||||
apk --no-cache add s6
|
|
27
build-all.sh
Executable file
27
build-all.sh
Executable file
@ -0,0 +1,27 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
set -e
|
||||||
|
|
||||||
|
SOURCE_DIR=$(realpath $(dirname "${0}"))
|
||||||
|
|
||||||
|
# Build basic Alpine LXC image
|
||||||
|
mkdir -p /var/lib/lxc/shared/alpine
|
||||||
|
wget https://github.com/gliderlabs/docker-alpine/raw/2bfe6510ee31d86cfeb2f37587f4cf866f28ffbc/versions/library-3.8/x86_64/rootfs.tar.xz -O - | tar xJf - -C /var/lib/lxc/shared/alpine
|
||||||
|
touch /var/lib/lxc/shared/alpine/etc/resolv.conf
|
||||||
|
lxc-build ${SOURCE_DIR}/basic-runtimes/alpine.lxcfile
|
||||||
|
|
||||||
|
# Build runtime overlays
|
||||||
|
lxc-build ${SOURCE_DIR}/basic-runtimes/java.lxcfile
|
||||||
|
lxc-build ${SOURCE_DIR}/basic-runtimes/libxml.lxcfile
|
||||||
|
#lxc-build ${SOURCE_DIR}/basic-runtimes/php.lxcfile
|
||||||
|
lxc-build ${SOURCE_DIR}/basic-runtimes/python2.lxcfile
|
||||||
|
lxc-build ${SOURCE_DIR}/basic-runtimes/python3.lxcfile
|
||||||
|
#lxc-build ${SOURCE_DIR}/basic-runtimes/ruby.lxcfile
|
||||||
|
#lxc-build ${SOURCE_DIR}/basic-runtimes/tomcat.lxcfile
|
||||||
|
|
||||||
|
# Build applications
|
||||||
|
lxc-build ${SOURCE_DIR}/activemq
|
||||||
|
lxc-build ${SOURCE_DIR}/ckan
|
||||||
|
lxc-build ${SOURCE_DIR}/ckan-datapusher
|
||||||
|
lxc-build ${SOURCE_DIR}/postgres
|
||||||
|
lxc-build ${SOURCE_DIR}/redis
|
||||||
|
lxc-build ${SOURCE_DIR}/solr
|
@ -1,33 +0,0 @@
|
|||||||
FROM python2
|
|
||||||
LABEL maintainer="Disassembler <disassembler@dasm.cz>"
|
|
||||||
|
|
||||||
RUN \
|
|
||||||
# Install runtime dependencies
|
|
||||||
apk --no-cache add libffi libressl uwsgi-python
|
|
||||||
|
|
||||||
RUN \
|
|
||||||
# Install build dependencies
|
|
||||||
apk --no-cache add --virtual .deps build-base git libffi-dev libressl-dev libxml2-dev libxslt-dev py2-pip python2-dev \
|
|
||||||
# Install CKAN DataPusher
|
|
||||||
&& mkdir -p /srv/ckan-datapusher \
|
|
||||||
&& cd /srv/ckan-datapusher \
|
|
||||||
&& pip install -U setuptools \
|
|
||||||
&& pip install -e 'git+https://github.com/ckan/datapusher.git#egg=datapusher' \
|
|
||||||
# Hackfix the X509_STORE_CTX wrapper
|
|
||||||
&& sed -i 's/\[security\]//' /srv/ckan-datapusher/src/datapusher/requirements.txt \
|
|
||||||
&& pip install -r /srv/ckan-datapusher/src/datapusher/requirements.txt \
|
|
||||||
# Create OS user
|
|
||||||
&& addgroup -S -g 8004 ckandp \
|
|
||||||
&& adduser -S -u 8004 -h /srv/ckan-datapusher -s /bin/false -g ckandp -G ckandp ckandp \
|
|
||||||
&& chown -R ckandp:ckandp /srv/ckan-datapusher \
|
|
||||||
# Cleanup
|
|
||||||
&& apk --no-cache del .deps \
|
|
||||||
&& find /srv/ckan-datapusher/src -name '.git*' -exec rm -rf {} + \
|
|
||||||
&& rm -rf /root/.cache
|
|
||||||
|
|
||||||
COPY docker/ /
|
|
||||||
|
|
||||||
VOLUME ["/etc/ckan-datapusher", "/srv/ckan-datapusher/data"]
|
|
||||||
EXPOSE 8080
|
|
||||||
|
|
||||||
CMD ["s6-svscan", "/etc/services.d"]
|
|
44
ckan-datapusher/lxcfile
Normal file
44
ckan-datapusher/lxcfile
Normal file
@ -0,0 +1,44 @@
|
|||||||
|
IMAGE ckan-datapusher
|
||||||
|
LAYER shared/alpine
|
||||||
|
LAYER shared/libxml
|
||||||
|
LAYER shared/python2
|
||||||
|
LAYER ckan-datapusher/ckan-datapusher
|
||||||
|
|
||||||
|
SCRIPT
|
||||||
|
# Install runtime dependencies
|
||||||
|
apk --no-cache add libffi libressl uwsgi-python
|
||||||
|
|
||||||
|
# Install build dependencies
|
||||||
|
apk --no-cache add --virtual .deps build-base git libffi-dev libressl-dev libxml2-dev libxslt-dev py2-pip python2-dev
|
||||||
|
|
||||||
|
# Install CKAN DataPusher
|
||||||
|
mkdir -p /srv/ckan-datapusher
|
||||||
|
cd /srv/ckan-datapusher
|
||||||
|
pip install -U setuptools
|
||||||
|
pip install -e 'git+https://github.com/ckan/datapusher.git#egg=datapusher'
|
||||||
|
|
||||||
|
# Hackfix the X509_STORE_CTX wrapper
|
||||||
|
sed -i 's/\[security\]//' /srv/ckan-datapusher/src/datapusher/requirements.txt
|
||||||
|
pip install -r /srv/ckan-datapusher/src/datapusher/requirements.txt
|
||||||
|
|
||||||
|
# Prepare mountpoint for selfsigned certificate
|
||||||
|
touch /etc/ssl/services.pem
|
||||||
|
|
||||||
|
# Create OS user
|
||||||
|
addgroup -S -g 8004 ckandp
|
||||||
|
adduser -S -u 8004 -h /srv/ckan-datapusher -s /bin/false -g ckandp -G ckandp ckandp
|
||||||
|
chown -R ckandp:ckandp /srv/ckan-datapusher
|
||||||
|
|
||||||
|
# Cleanup
|
||||||
|
apk --no-cache del .deps
|
||||||
|
find /srv/ckan-datapusher/src -name '.git*' -exec rm -rf {} +
|
||||||
|
rm -rf /root/.cache
|
||||||
|
RUN
|
||||||
|
|
||||||
|
COPY lxc/ /
|
||||||
|
|
||||||
|
VOLUME /etc/ssl/services.pem etc/ssl/services.pem
|
||||||
|
VOLUME /srv/ckan-datapusher/conf etc/ckan-datapusher
|
||||||
|
VOLUME /srv/ckan-datapusher/data srv/ckan-datapusher/data
|
||||||
|
|
||||||
|
CMD /bin/s6-svscan /etc/services.d
|
@ -4,7 +4,6 @@ set -e
|
|||||||
SOURCE_DIR=$(realpath $(dirname "${0}"))/ckan-datapusher
|
SOURCE_DIR=$(realpath $(dirname "${0}"))/ckan-datapusher
|
||||||
|
|
||||||
# Build Docker container
|
# Build Docker container
|
||||||
docker build -t ckan-datapusher ${SOURCE_DIR}
|
|
||||||
cp ${SOURCE_DIR}/etc/init.d/ckan-datapusher /etc/init.d/ckan-datapusher
|
cp ${SOURCE_DIR}/etc/init.d/ckan-datapusher /etc/init.d/ckan-datapusher
|
||||||
rc-update -u
|
rc-update -u
|
||||||
|
|
@ -1,46 +0,0 @@
|
|||||||
FROM python2
|
|
||||||
LABEL maintainer="Disassembler <disassembler@dasm.cz>"
|
|
||||||
|
|
||||||
RUN \
|
|
||||||
# Add edge/testing repository
|
|
||||||
echo '@edge http://dl-cdn.alpinelinux.org/alpine/edge/testing' >>/etc/apk/repositories \
|
|
||||||
# Install runtime dependencies
|
|
||||||
&& apk --no-cache add geos@edge libjpeg-turbo libmagic libpq mailcap py2-pip zlib
|
|
||||||
|
|
||||||
RUN \
|
|
||||||
# Install build dependencies
|
|
||||||
apk --no-cache add --virtual .deps build-base git libjpeg-turbo-dev libxml2-dev libxslt-dev postgresql-dev python2-dev zlib-dev \
|
|
||||||
# Hackfix for python find_library('c') call
|
|
||||||
&& ln -s /lib/ld-musl-x86_64.so.1 /lib/libc.so.1 \
|
|
||||||
# Install CKAN
|
|
||||||
&& mkdir -p /srv/ckan \
|
|
||||||
&& cd /srv/ckan \
|
|
||||||
&& pip install -U setuptools \
|
|
||||||
&& pip install flask-debugtoolbar \
|
|
||||||
&& pip install -e 'git+https://github.com/ckan/ckan.git#egg=ckan' \
|
|
||||||
&& pip install -r /srv/ckan/src/ckan/requirements.txt \
|
|
||||||
# Install CKAN extensions
|
|
||||||
&& pip install -e 'git+https://github.com/ckan/ckanext-basiccharts#egg=ckanext_basiccharts' \
|
|
||||||
&& pip install -e 'git+https://github.com/ckan/ckanext-spatial#egg=ckanext_spatial' \
|
|
||||||
&& pip install -e 'git+https://github.com/ckan/ckanext-geoview#egg=ckanext_geoview' \
|
|
||||||
&& pip install -e 'git+https://github.com/ckan/ckanext-mapviews#egg=ckanext_mapviews' \
|
|
||||||
&& pip install -e 'git+https://github.com/XVTSolutions/ckanext-spatialUI#egg=ckanext_spatialui' \
|
|
||||||
&& pip install -e 'git+https://github.com/aptivate/ckanext-datasetthumbnail#egg=ckanext_datasetthumbnail' \
|
|
||||||
&& pip install -e 'git+https://github.com/datagvat/ckanext-dgvat_xls#egg=ckanext_dgvat_xls' \
|
|
||||||
&& pip install -r /srv/ckan/src/ckanext-spatial/pip-requirements.txt \
|
|
||||||
&& pip install -r /srv/ckan/src/ckanext-dgvat-xls/requirements.txt \
|
|
||||||
# Create OS user
|
|
||||||
&& addgroup -S -g 8003 ckan \
|
|
||||||
&& adduser -S -u 8003 -h /srv/ckan -s /bin/false -g ckan -G ckan ckan \
|
|
||||||
&& chown -R ckan:ckan /srv/ckan \
|
|
||||||
# Cleanup
|
|
||||||
&& apk --no-cache del .deps \
|
|
||||||
&& find /srv/ckan/src -name '.git*' -exec rm -rf {} + \
|
|
||||||
&& rm -rf /root/.cache
|
|
||||||
|
|
||||||
COPY docker/ /
|
|
||||||
|
|
||||||
VOLUME ["/etc/ckan", "/srv/ckan/storage"]
|
|
||||||
EXPOSE 8080
|
|
||||||
|
|
||||||
CMD ["s6-svscan", "/etc/services.d"]
|
|
55
ckan/lxcfile
Normal file
55
ckan/lxcfile
Normal file
@ -0,0 +1,55 @@
|
|||||||
|
IMAGE ckan
|
||||||
|
LAYER shared/alpine
|
||||||
|
LAYER shared/libxml
|
||||||
|
LAYER shared/python2
|
||||||
|
LAYER ckan/ckan
|
||||||
|
|
||||||
|
SCRIPT
|
||||||
|
# Add edge/testing repository
|
||||||
|
echo '@edge http://dl-cdn.alpinelinux.org/alpine/edge/testing' >>/etc/apk/repositories
|
||||||
|
|
||||||
|
# Install runtime dependencies
|
||||||
|
apk --no-cache add geos@edge libjpeg-turbo libmagic libpq mailcap py2-pip zlib
|
||||||
|
|
||||||
|
# Install build dependencies
|
||||||
|
apk --no-cache add --virtual .deps build-base git libjpeg-turbo-dev libxml2-dev libxslt-dev postgresql-dev python2-dev zlib-dev
|
||||||
|
|
||||||
|
# Hackfix for python find_library('c') call
|
||||||
|
ln -s /lib/ld-musl-x86_64.so.1 /lib/libc.so.1
|
||||||
|
|
||||||
|
# Install CKAN
|
||||||
|
mkdir -p /srv/ckan
|
||||||
|
cd /srv/ckan
|
||||||
|
pip install -U setuptools
|
||||||
|
pip install flask-debugtoolbar
|
||||||
|
pip install -e 'git+https://github.com/ckan/ckan.git#egg=ckan'
|
||||||
|
pip install -r /srv/ckan/src/ckan/requirements.txt
|
||||||
|
|
||||||
|
# Install CKAN extensions
|
||||||
|
pip install -e 'git+https://github.com/ckan/ckanext-basiccharts#egg=ckanext_basiccharts'
|
||||||
|
pip install -e 'git+https://github.com/ckan/ckanext-spatial#egg=ckanext_spatial'
|
||||||
|
pip install -e 'git+https://github.com/ckan/ckanext-geoview#egg=ckanext_geoview'
|
||||||
|
pip install -e 'git+https://github.com/ckan/ckanext-mapviews#egg=ckanext_mapviews'
|
||||||
|
pip install -e 'git+https://github.com/XVTSolutions/ckanext-spatialUI#egg=ckanext_spatialui'
|
||||||
|
pip install -e 'git+https://github.com/aptivate/ckanext-datasetthumbnail#egg=ckanext_datasetthumbnail'
|
||||||
|
pip install -e 'git+https://github.com/datagvat/ckanext-dgvat_xls#egg=ckanext_dgvat_xls'
|
||||||
|
pip install -r /srv/ckan/src/ckanext-spatial/pip-requirements.txt
|
||||||
|
pip install -r /srv/ckan/src/ckanext-dgvat-xls/requirements.txt
|
||||||
|
|
||||||
|
# Create OS user
|
||||||
|
addgroup -S -g 8003 ckan
|
||||||
|
adduser -S -u 8003 -h /srv/ckan -s /bin/false -g ckan -G ckan ckan
|
||||||
|
chown -R ckan:ckan /srv/ckan
|
||||||
|
|
||||||
|
# Cleanup
|
||||||
|
apk --no-cache del .deps
|
||||||
|
find /srv/ckan/src -name '.git*' -exec rm -rf {} +
|
||||||
|
rm -rf /root/.cache
|
||||||
|
RUN
|
||||||
|
|
||||||
|
COPY lxc/ /
|
||||||
|
|
||||||
|
MOUNT /srv/ckan/conf etc/ckan
|
||||||
|
MOUNT /srv/ckan/data srv/ckan/storage
|
||||||
|
|
||||||
|
CMD /bin/s6-svscan /etc/services.d
|
8
ckan.sh → ckan/setup.sh
Executable file → Normal file
8
ckan.sh → ckan/setup.sh
Executable file → Normal file
@ -4,17 +4,11 @@ set -e
|
|||||||
SOURCE_DIR=$(realpath $(dirname "${0}"))/ckan
|
SOURCE_DIR=$(realpath $(dirname "${0}"))/ckan
|
||||||
|
|
||||||
# Check prerequisites
|
# Check prerequisites
|
||||||
docker image ls | grep -q ckan-datapusher || $(realpath $(dirname "${0}"))/ckan-datapusher.sh
|
|
||||||
docker image ls | grep -q postfix || $(realpath $(dirname "${0}"))/postfix.sh
|
|
||||||
docker image ls | grep -q postgres || $(realpath $(dirname "${0}"))/postgres.sh
|
|
||||||
docker image ls | grep -q redis || $(realpath $(dirname "${0}"))/redis.sh
|
|
||||||
docker image ls | grep -q solr || $(realpath $(dirname "${0}"))/solr.sh
|
|
||||||
service postgres start
|
service postgres start
|
||||||
service redis start
|
service redis start
|
||||||
service solr start
|
service solr start
|
||||||
|
|
||||||
# Build Docker container
|
# Install service
|
||||||
docker build -t ckan ${SOURCE_DIR}
|
|
||||||
cp ${SOURCE_DIR}/etc/init.d/ckan /etc/init.d/ckan
|
cp ${SOURCE_DIR}/etc/init.d/ckan /etc/init.d/ckan
|
||||||
rc-update -u
|
rc-update -u
|
||||||
|
|
@ -4,8 +4,8 @@ set -e
|
|||||||
SOURCE_DIR=$(realpath $(dirname "${0}"))/crisiscleanup
|
SOURCE_DIR=$(realpath $(dirname "${0}"))/crisiscleanup
|
||||||
|
|
||||||
# Check prerequisites
|
# Check prerequisites
|
||||||
docker image ls | grep -q postfix || $(realpath $(dirname "${0}"))/postfix.sh
|
lxc-ls | grep -q postfix || $(realpath $(dirname "${0}"))/postfix.sh
|
||||||
docker image ls | grep -q postgres || $(realpath $(dirname "${0}"))/postgres.sh
|
lxc-ls | grep -q postgres || $(realpath $(dirname "${0}"))/postgres.sh
|
||||||
service postgres start
|
service postgres start
|
||||||
|
|
||||||
# Build Docker container
|
# Build Docker container
|
@ -4,7 +4,7 @@ set -e
|
|||||||
SOURCE_DIR=$(realpath $(dirname "${0}"))/cts
|
SOURCE_DIR=$(realpath $(dirname "${0}"))/cts
|
||||||
|
|
||||||
# Check prerequisites
|
# Check prerequisites
|
||||||
docker image ls | grep -q postgres || $(realpath $(dirname "${0}"))/postgres.sh
|
lxc-ls | grep -q postgres || $(realpath $(dirname "${0}"))/postgres.sh
|
||||||
service postgres start
|
service postgres start
|
||||||
|
|
||||||
# Build Docker container
|
# Build Docker container
|
@ -4,8 +4,8 @@ set -e
|
|||||||
SOURCE_DIR=$(realpath $(dirname "${0}"))/gnuhealth
|
SOURCE_DIR=$(realpath $(dirname "${0}"))/gnuhealth
|
||||||
|
|
||||||
# Check prerequisites
|
# Check prerequisites
|
||||||
docker image ls | grep -q postfix || $(realpath $(dirname "${0}"))/postfix.sh
|
lxc-ls | grep -q postfix || $(realpath $(dirname "${0}"))/postfix.sh
|
||||||
docker image ls | grep -q postgres || $(realpath $(dirname "${0}"))/postgres.sh
|
lxc-ls | grep -q postgres || $(realpath $(dirname "${0}"))/postgres.sh
|
||||||
service postgres start
|
service postgres start
|
||||||
|
|
||||||
# Build Docker container
|
# Build Docker container
|
@ -4,8 +4,8 @@ set -e
|
|||||||
SOURCE_DIR=$(realpath $(dirname "${0}"))/kanboard
|
SOURCE_DIR=$(realpath $(dirname "${0}"))/kanboard
|
||||||
|
|
||||||
# Check prerequisites
|
# Check prerequisites
|
||||||
docker image ls | grep -q postfix || $(realpath $(dirname "${0}"))/postfix.sh
|
lxc-ls | grep -q postfix || $(realpath $(dirname "${0}"))/postfix.sh
|
||||||
docker image ls | grep -q postgres || $(realpath $(dirname "${0}"))/postgres.sh
|
lxc-ls | grep -q postgres || $(realpath $(dirname "${0}"))/postgres.sh
|
||||||
service postgres start
|
service postgres start
|
||||||
|
|
||||||
# Build Docker container
|
# Build Docker container
|
129
lxc-build
Executable file
129
lxc-build
Executable file
@ -0,0 +1,129 @@
|
|||||||
|
#!/usr/bin/python3
|
||||||
|
|
||||||
|
import os
|
||||||
|
import shutil
|
||||||
|
import subprocess
|
||||||
|
import sys
|
||||||
|
|
||||||
|
image = 'build'
|
||||||
|
layers = []
|
||||||
|
mounts = []
|
||||||
|
uid = 0
|
||||||
|
gid = 0
|
||||||
|
cmd = '/bin/sh'
|
||||||
|
script = []
|
||||||
|
in_script = False
|
||||||
|
|
||||||
|
LXC_ROOT = '/var/lib/lxc'
|
||||||
|
CONFIG_TEMPLATE = '''# Image name
|
||||||
|
lxc.uts.name = {image}
|
||||||
|
|
||||||
|
# Network
|
||||||
|
lxc.net.0.type = veth
|
||||||
|
lxc.net.0.link = lxcbr0
|
||||||
|
lxc.net.0.flags = up
|
||||||
|
lxc.net.0.ipv4.address = 172.17.0.2/16
|
||||||
|
lxc.net.0.ipv4.gateway = auto
|
||||||
|
|
||||||
|
# Volumes
|
||||||
|
lxc.rootfs.path = {rootfs}
|
||||||
|
|
||||||
|
# Mounts
|
||||||
|
lxc.mount.entry = /etc/hosts etc/hosts none bind 0 0
|
||||||
|
lxc.mount.entry = /etc/resolv.conf etc/resolv.conf none bind 0 0
|
||||||
|
{mounts}
|
||||||
|
# Init
|
||||||
|
lxc.init.cmd = {cmd}
|
||||||
|
lxc.init.uid = {uid}
|
||||||
|
lxc.init.gid = {gid}
|
||||||
|
|
||||||
|
# Halt
|
||||||
|
lxc.signal.halt = SIGTERM
|
||||||
|
|
||||||
|
# Other
|
||||||
|
lxc.arch = x86_64
|
||||||
|
lxc.cap.drop = sys_admin
|
||||||
|
lxc.include = /usr/share/lxc/config/alpine.common.conf
|
||||||
|
'''
|
||||||
|
|
||||||
|
if os.path.isfile(sys.argv[1]):
|
||||||
|
lxcfile = os.path.realpath(sys.argv[1])
|
||||||
|
build_context = os.path.basepath(lxcfile)
|
||||||
|
else:
|
||||||
|
build_context = os.path.realpath(sys.argv[1])
|
||||||
|
lxcfile = os.path.join(build_context, 'lxcfile')
|
||||||
|
|
||||||
|
def main():
|
||||||
|
with open(lxcfile, 'r') as fd:
|
||||||
|
recipe = fd.readlines()
|
||||||
|
|
||||||
|
for line in recipe:
|
||||||
|
if line == 'RUN':
|
||||||
|
in_script = False
|
||||||
|
run_script()
|
||||||
|
elif in_script and not line and not line.startswith('#'):
|
||||||
|
script.append()
|
||||||
|
elif line == 'SCRIPT':
|
||||||
|
script = []
|
||||||
|
in_script = True
|
||||||
|
elif line.startswith('IMAGE'):
|
||||||
|
image = line.split()[1]
|
||||||
|
os.makedirs(os.path.join(LXC_ROOT, image), 0o755, True)
|
||||||
|
elif line.startswith('LAYER'):
|
||||||
|
layers.append(line.split()[1])
|
||||||
|
rebuild_config()
|
||||||
|
fix_world()
|
||||||
|
elif line.startswith('COPY'):
|
||||||
|
copy_files(*line.split()[1:2])
|
||||||
|
elif line.startswith('MOUNT'):
|
||||||
|
mounts.append(line.split()[1])
|
||||||
|
rebuild_config()
|
||||||
|
elif line.startswith('USER'):
|
||||||
|
uid = line.split()[1]
|
||||||
|
gid = line.split()[2]
|
||||||
|
rebuild_config()
|
||||||
|
elif line.startswith('CMD'):
|
||||||
|
cmd = line.split()[1]
|
||||||
|
rebuild_config()
|
||||||
|
layers.append('{}/delta0'.format(image))
|
||||||
|
|
||||||
|
def rebuild_config():
|
||||||
|
rootfs_layers = [os.path.join(LXC_ROOT, l) for l in layers]
|
||||||
|
for layer in rootfs_layers:
|
||||||
|
os.makedirs(layer, 0o755, True)
|
||||||
|
if len(rootfs_layers) == 1:
|
||||||
|
rootfs_path = rootfs_layers[0]
|
||||||
|
else:
|
||||||
|
rootfs_path = 'overlay:{}'.format(':'.join(rootfs_layers))
|
||||||
|
mount_entries = '\n'.join(['lxc.mount.entry = {} none bind 0 0'.format(m) for m in mounts])
|
||||||
|
with open(os.path.join(LXC_ROOT, image, 'config'), 'w') as fd:
|
||||||
|
fd.write(CONFIG_TEMPLATE.format(image=image, rootfs=rootfs_path, mounts=mount_entries, uid=uid, gid=gid, cmd=cmd))
|
||||||
|
|
||||||
|
def fix_world():
|
||||||
|
world_items = []
|
||||||
|
last_world = []
|
||||||
|
for layer in layers[:-1]:
|
||||||
|
with open(os.path.join(LXC_ROOT, layer, 'etc/apk/world'), 'r') as fd:
|
||||||
|
last_world = fd.read().splitlines()
|
||||||
|
world_items.extend(last_world)
|
||||||
|
world_items = sorted(set(world_items))
|
||||||
|
if world_items != sorted(last_world):
|
||||||
|
os.makedirs(os.path.join(LXC_ROOT, layers[-1], 'etc/apk'))
|
||||||
|
with open(os.path.join(LXC_ROOT, layers[-1], 'etc/apk/world'), 'w') as fd:
|
||||||
|
fd.writelines(world_items)
|
||||||
|
|
||||||
|
def run_script():
|
||||||
|
script_filename = os.path.join(LXC_ROOT, layers[-1], 'run.sh')
|
||||||
|
with open(script_filename, 'w') as fd:
|
||||||
|
fd.write(' && '.join([s for s in script]))
|
||||||
|
os.chmod(script_filename, 0o700)
|
||||||
|
subprocess.run(['lxc-execute', '-n', image, '--', '/bin/sh', '-lvc', '/run.sh'], check=True)
|
||||||
|
os.unlink(script_filename)
|
||||||
|
|
||||||
|
def copy_files(src, dst):
|
||||||
|
src = os.path.join(build_context, src)
|
||||||
|
dst = os.path.join(LXC_ROOT, layers[-1], dst)
|
||||||
|
shutil.copytree(src, dst)
|
||||||
|
|
||||||
|
if __name__ == '__init__':
|
||||||
|
main()
|
@ -4,8 +4,8 @@ set -e
|
|||||||
SOURCE_DIR=$(realpath $(dirname "${0}"))/mifosx
|
SOURCE_DIR=$(realpath $(dirname "${0}"))/mifosx
|
||||||
|
|
||||||
# Check prerequisites
|
# Check prerequisites
|
||||||
docker image ls | grep -q mariadb || $(realpath $(dirname "${0}"))/mariadb.sh
|
lxc-ls | grep -q mariadb || $(realpath $(dirname "${0}"))/mariadb.sh
|
||||||
docker image ls | grep -q postfix || $(realpath $(dirname "${0}"))/postfix.sh
|
lxc-ls | grep -q postfix || $(realpath $(dirname "${0}"))/postfix.sh
|
||||||
service mariadb start
|
service mariadb start
|
||||||
|
|
||||||
# Build Docker container
|
# Build Docker container
|
@ -4,9 +4,9 @@ set -e
|
|||||||
SOURCE_DIR=$(realpath $(dirname "${0}"))/motech
|
SOURCE_DIR=$(realpath $(dirname "${0}"))/motech
|
||||||
|
|
||||||
# Check prerequisites
|
# Check prerequisites
|
||||||
docker image ls | grep -q activemq || $(realpath $(dirname "${0}"))/activemq.sh
|
lxc-ls | grep -q activemq || $(realpath $(dirname "${0}"))/activemq.sh
|
||||||
docker image ls | grep -q postfix || $(realpath $(dirname "${0}"))/postfix.sh
|
lxc-ls | grep -q postfix || $(realpath $(dirname "${0}"))/postfix.sh
|
||||||
docker image ls | grep -q postgres || $(realpath $(dirname "${0}"))/postgres.sh
|
lxc-ls | grep -q postgres || $(realpath $(dirname "${0}"))/postgres.sh
|
||||||
service postgres start
|
service postgres start
|
||||||
|
|
||||||
# Build Docker container
|
# Build Docker container
|
@ -4,7 +4,7 @@ set -e
|
|||||||
SOURCE_DIR=$(realpath $(dirname "${0}"))/opendatakit-build
|
SOURCE_DIR=$(realpath $(dirname "${0}"))/opendatakit-build
|
||||||
|
|
||||||
# Check prerequisites
|
# Check prerequisites
|
||||||
docker image ls | grep -q postgres || $(realpath $(dirname "${0}"))/postgres.sh
|
lxc-ls | grep -q postgres || $(realpath $(dirname "${0}"))/postgres.sh
|
||||||
service postgres start
|
service postgres start
|
||||||
|
|
||||||
# Build Docker container
|
# Build Docker container
|
@ -4,8 +4,8 @@ set -e
|
|||||||
SOURCE_DIR=$(realpath $(dirname "${0}"))/opendatakit
|
SOURCE_DIR=$(realpath $(dirname "${0}"))/opendatakit
|
||||||
|
|
||||||
# Check prerequisites
|
# Check prerequisites
|
||||||
docker image ls | grep -q postgres || $(realpath $(dirname "${0}"))/postgres.sh
|
lxc-ls | grep -q postgres || $(realpath $(dirname "${0}"))/postgres.sh
|
||||||
docker image ls | grep -q postfix || $(realpath $(dirname "${0}"))/postfix.sh
|
lxc-ls | grep -q postfix || $(realpath $(dirname "${0}"))/postfix.sh
|
||||||
service postgres start
|
service postgres start
|
||||||
|
|
||||||
# Build Docker container
|
# Build Docker container
|
@ -4,9 +4,9 @@ set -e
|
|||||||
SOURCE_DIR=$(realpath $(dirname "${0}"))/pandora
|
SOURCE_DIR=$(realpath $(dirname "${0}"))/pandora
|
||||||
|
|
||||||
# Check prerequisites
|
# Check prerequisites
|
||||||
docker image ls | grep -q postfix || $(realpath $(dirname "${0}"))/postfix.sh
|
lxc-ls | grep -q postfix || $(realpath $(dirname "${0}"))/postfix.sh
|
||||||
docker image ls | grep -q postgres || $(realpath $(dirname "${0}"))/postgres.sh
|
lxc-ls | grep -q postgres || $(realpath $(dirname "${0}"))/postgres.sh
|
||||||
docker image ls | grep -q rabbitmq || $(realpath $(dirname "${0}"))/rabbitmq.sh
|
lxc-ls | grep -q rabbitmq || $(realpath $(dirname "${0}"))/rabbitmq.sh
|
||||||
service postgres start
|
service postgres start
|
||||||
service rabbitmq start
|
service rabbitmq start
|
||||||
|
|
@ -1,20 +0,0 @@
|
|||||||
FROM alpine:3.8
|
|
||||||
LABEL maintainer="Disassembler <disassembler@dasm.cz>"
|
|
||||||
|
|
||||||
RUN \
|
|
||||||
# Modify OS user (which will be picked up later by apk add)
|
|
||||||
sed -i 's/postgres:x:70:70/postgres:x:5432:5432/' /etc/passwd \
|
|
||||||
&& sed -i 's/postgres:x:70/postgres:x:5432/' /etc/group \
|
|
||||||
# Add edge/testing repository for postgis support
|
|
||||||
&& echo '@edge http://dl-cdn.alpinelinux.org/alpine/edge/testing' >>/etc/apk/repositories \
|
|
||||||
# Install PostgreSQL + PostGIS
|
|
||||||
&& apk --no-cache add postgresql postgresql-contrib postgis@edge \
|
|
||||||
# Create socket directory
|
|
||||||
&& mkdir /run/postgresql \
|
|
||||||
&& chown postgres:postgres /run/postgresql
|
|
||||||
|
|
||||||
VOLUME ["/var/lib/postgresql"]
|
|
||||||
EXPOSE 5432
|
|
||||||
|
|
||||||
USER postgres
|
|
||||||
CMD ["postgres", "-D", "/var/lib/postgresql"]
|
|
24
postgres/lxcfile
Normal file
24
postgres/lxcfile
Normal file
@ -0,0 +1,24 @@
|
|||||||
|
IMAGE postgres
|
||||||
|
LAYER shared/alpine
|
||||||
|
LAYER postgres/postgres
|
||||||
|
|
||||||
|
SCRIPT
|
||||||
|
# Modify OS user (which will be picked up later by apk add)
|
||||||
|
sed -i 's/postgres:x:70:70/postgres:x:5432:5432/' /etc/passwd
|
||||||
|
sed -i 's/postgres:x:70/postgres:x:5432/' /etc/group
|
||||||
|
|
||||||
|
# Add edge/testing repository for postgis support
|
||||||
|
echo '@edge http://dl-cdn.alpinelinux.org/alpine/edge/testing' >>/etc/apk/repositories
|
||||||
|
|
||||||
|
# Install PostgreSQL + PostGIS
|
||||||
|
apk --no-cache add postgresql postgresql-contrib postgis@edge
|
||||||
|
|
||||||
|
# Create socket directory
|
||||||
|
mkdir /run/postgresql
|
||||||
|
chown postgres:postgres /run/postgresql
|
||||||
|
RUN
|
||||||
|
|
||||||
|
MOUNT /srv/postgres/data var/lib/postgresql
|
||||||
|
|
||||||
|
USER 5432 5432
|
||||||
|
CMD postgres -D /var/lib/postgresql
|
@ -4,7 +4,6 @@ set -e
|
|||||||
SOURCE_DIR=$(realpath $(dirname "${0}"))/postgres
|
SOURCE_DIR=$(realpath $(dirname "${0}"))/postgres
|
||||||
|
|
||||||
# Build Docker container
|
# Build Docker container
|
||||||
docker build -t postgres ${SOURCE_DIR}
|
|
||||||
cp ${SOURCE_DIR}/etc/init.d/postgres /etc/init.d/postgres
|
cp ${SOURCE_DIR}/etc/init.d/postgres /etc/init.d/postgres
|
||||||
rc-update -u
|
rc-update -u
|
||||||
|
|
@ -1,15 +0,0 @@
|
|||||||
FROM alpine:3.8
|
|
||||||
LABEL maintainer="Disassembler <disassembler@dasm.cz>"
|
|
||||||
|
|
||||||
RUN \
|
|
||||||
# Create OS user (which will be picked up later by apk add)
|
|
||||||
addgroup -S -g 6379 redis \
|
|
||||||
&& adduser -S -u 6379 -h /var/lib/redis -s /bin/false -g redis -G redis redis \
|
|
||||||
# Install Redis
|
|
||||||
&& apk --no-cache add redis
|
|
||||||
|
|
||||||
VOLUME ["/var/lib/redis"]
|
|
||||||
EXPOSE 6379
|
|
||||||
|
|
||||||
USER redis
|
|
||||||
CMD ["redis-server", "/etc/redis.conf"]
|
|
18
redis/lxcfile
Normal file
18
redis/lxcfile
Normal file
@ -0,0 +1,18 @@
|
|||||||
|
IMAGE redis
|
||||||
|
LAYER shared/alpine
|
||||||
|
LAYER redis/redis
|
||||||
|
|
||||||
|
SCRIPT
|
||||||
|
# Create OS user (which will be picked up later by apk add)
|
||||||
|
addgroup -S -g 6379 redis
|
||||||
|
adduser -S -u 6379 -h /var/lib/redis -s /bin/false -g redis -G redis redis
|
||||||
|
|
||||||
|
# Install Redis
|
||||||
|
apk --no-cache add redis
|
||||||
|
RUN
|
||||||
|
|
||||||
|
MOUNT /srv/redis/conf/redis.conf etc/redis.conf
|
||||||
|
MOUNT /srv/redis/data var/lib/redis
|
||||||
|
|
||||||
|
USER 6379 6379
|
||||||
|
CMD /usr/bin/redis-server /etc/redis.conf
|
@ -5,8 +5,8 @@ SOURCE_DIR=$(realpath $(dirname "${0}"))/sahana-demo
|
|||||||
export TEMPLATE=${TEMPLATE:-"default"}
|
export TEMPLATE=${TEMPLATE:-"default"}
|
||||||
|
|
||||||
# Check prerequisites
|
# Check prerequisites
|
||||||
docker image ls | grep -q postfix || $(realpath $(dirname "${0}"))/postfix.sh
|
lxc-ls | grep -q postfix || $(realpath $(dirname "${0}"))/postfix.sh
|
||||||
docker image ls | grep -q postgres || $(realpath $(dirname "${0}"))/postgres.sh
|
lxc-ls | grep -q postgres || $(realpath $(dirname "${0}"))/postgres.sh
|
||||||
service postgres start
|
service postgres start
|
||||||
|
|
||||||
# Build Docker container
|
# Build Docker container
|
@ -4,8 +4,8 @@ set -e
|
|||||||
SOURCE_DIR=$(realpath $(dirname "${0}"))/sahana
|
SOURCE_DIR=$(realpath $(dirname "${0}"))/sahana
|
||||||
|
|
||||||
# Check prerequisites
|
# Check prerequisites
|
||||||
docker image ls | grep -q postfix || $(realpath $(dirname "${0}"))/postfix.sh
|
lxc-ls | grep -q postfix || $(realpath $(dirname "${0}"))/postfix.sh
|
||||||
docker image ls | grep -q postgres || $(realpath $(dirname "${0}"))/postgres.sh
|
lxc-ls | grep -q postgres || $(realpath $(dirname "${0}"))/postgres.sh
|
||||||
service postgres start
|
service postgres start
|
||||||
|
|
||||||
# Build Docker container
|
# Build Docker container
|
@ -4,8 +4,8 @@ set -e
|
|||||||
SOURCE_DIR=$(realpath $(dirname "${0}"))/sambro
|
SOURCE_DIR=$(realpath $(dirname "${0}"))/sambro
|
||||||
|
|
||||||
# Check prerequisites
|
# Check prerequisites
|
||||||
docker image ls | grep -q postfix || $(realpath $(dirname "${0}"))/postfix.sh
|
lxc-ls | grep -q postfix || $(realpath $(dirname "${0}"))/postfix.sh
|
||||||
docker image ls | grep -q postgres || $(realpath $(dirname "${0}"))/postgres.sh
|
lxc-ls | grep -q postgres || $(realpath $(dirname "${0}"))/postgres.sh
|
||||||
service postgres start
|
service postgres start
|
||||||
|
|
||||||
# Build Docker container
|
# Build Docker container
|
@ -4,8 +4,8 @@ set -e
|
|||||||
SOURCE_DIR=$(realpath $(dirname "${0}"))/seeddms
|
SOURCE_DIR=$(realpath $(dirname "${0}"))/seeddms
|
||||||
|
|
||||||
# Check prerequisites
|
# Check prerequisites
|
||||||
docker image ls | grep -q postfix || $(realpath $(dirname "${0}"))/postfix.sh
|
lxc-ls | grep -q postfix || $(realpath $(dirname "${0}"))/postfix.sh
|
||||||
docker image ls | grep -q postgres || $(realpath $(dirname "${0}"))/postgres.sh
|
lxc-ls | grep -q postgres || $(realpath $(dirname "${0}"))/postgres.sh
|
||||||
service postgres start
|
service postgres start
|
||||||
|
|
||||||
# Build Docker container
|
# Build Docker container
|
@ -4,8 +4,8 @@ set -e
|
|||||||
SOURCE_DIR=$(realpath $(dirname "${0}"))/sigmah
|
SOURCE_DIR=$(realpath $(dirname "${0}"))/sigmah
|
||||||
|
|
||||||
# Check prerequisites
|
# Check prerequisites
|
||||||
docker image ls | grep -q postgres || $(realpath $(dirname "${0}"))/postgres.sh
|
lxc-ls | grep -q postgres || $(realpath $(dirname "${0}"))/postgres.sh
|
||||||
docker image ls | grep -q postfix || $(realpath $(dirname "${0}"))/postfix.sh
|
lxc-ls | grep -q postfix || $(realpath $(dirname "${0}"))/postfix.sh
|
||||||
service postgres start
|
service postgres start
|
||||||
|
|
||||||
# Build Docker container
|
# Build Docker container
|
@ -1,28 +0,0 @@
|
|||||||
FROM java
|
|
||||||
LABEL maintainer="Disassembler <disassembler@dasm.cz>"
|
|
||||||
|
|
||||||
RUN \
|
|
||||||
# Install runtime dependencies
|
|
||||||
apk --no-cache add bash lsof
|
|
||||||
|
|
||||||
RUN \
|
|
||||||
# Download and install Solr
|
|
||||||
wget http://archive.apache.org/dist/lucene/solr/6.5.1/solr-6.5.1.tgz -O /tmp/solr-6.5.1.tgz \
|
|
||||||
&& mkdir /opt \
|
|
||||||
&& tar xzf /tmp/solr-6.5.1.tgz -C /opt/ \
|
|
||||||
&& mv /opt/solr-6.5.1 /opt/solr \
|
|
||||||
&& rm -f /tmp/solr-6.5.1.tgz \
|
|
||||||
# Create OS user
|
|
||||||
&& addgroup -S -g 8983 solr \
|
|
||||||
&& adduser -S -u 8983 -h /var/lib/solr -s /bin/false -g solr -G solr solr \
|
|
||||||
&& chown -R solr:solr /opt/solr/ \
|
|
||||||
# Copy basic configuration file to data location
|
|
||||||
&& cp -p /opt/solr/server/solr/solr.xml /var/lib/solr/solr.xml \
|
|
||||||
# Make start/stop script visible globally
|
|
||||||
&& ln -s /opt/solr/bin/solr /usr/local/bin/solr
|
|
||||||
|
|
||||||
VOLUME ["/var/lib/solr"]
|
|
||||||
EXPOSE 8983
|
|
||||||
|
|
||||||
USER solr
|
|
||||||
CMD ["solr", "start", "-f"]
|
|
29
solr/lxcfile
Normal file
29
solr/lxcfile
Normal file
@ -0,0 +1,29 @@
|
|||||||
|
IMAGE solr
|
||||||
|
LAYER shared/alpine
|
||||||
|
LAYER shared/java
|
||||||
|
LAYER solr/solr
|
||||||
|
|
||||||
|
SCRIPT
|
||||||
|
# Install runtime dependencies
|
||||||
|
apk --no-cache add bash lsof
|
||||||
|
|
||||||
|
# Download and install Solr
|
||||||
|
wget http://archive.apache.org/dist/lucene/solr/6.5.1/solr-6.5.1.tgz -O /tmp/solr-6.5.1.tgz
|
||||||
|
mkdir /opt
|
||||||
|
tar xzf /tmp/solr-6.5.1.tgz -C /opt/
|
||||||
|
mv /opt/solr-6.5.1 /opt/solr
|
||||||
|
rm -f /tmp/solr-6.5.1.tgz
|
||||||
|
|
||||||
|
# Create OS user
|
||||||
|
addgroup -S -g 8983 solr
|
||||||
|
adduser -S -u 8983 -h /var/lib/solr -s /bin/false -g solr -G solr solr
|
||||||
|
chown -R solr:solr /opt/solr/
|
||||||
|
|
||||||
|
# Copy basic configuration file to data location
|
||||||
|
cp -p /opt/solr/server/solr/solr.xml /var/lib/solr/solr.xml
|
||||||
|
RUN
|
||||||
|
|
||||||
|
MOUNT /srv/solr/data var/lib/solr
|
||||||
|
|
||||||
|
USER 8983 8983
|
||||||
|
CMD /opt/solr/bin/solr start -f
|
@ -4,8 +4,8 @@ set -e
|
|||||||
SOURCE_DIR=$(realpath $(dirname "${0}"))/ushahidi
|
SOURCE_DIR=$(realpath $(dirname "${0}"))/ushahidi
|
||||||
|
|
||||||
# Check prerequisites
|
# Check prerequisites
|
||||||
docker image ls | grep -q mariadb || $(realpath $(dirname "${0}"))/mariadb.sh
|
lxc-ls | grep -q mariadb || $(realpath $(dirname "${0}"))/mariadb.sh
|
||||||
docker image ls | grep -q postfix || $(realpath $(dirname "${0}"))/postfix.sh
|
lxc-ls | grep -q postfix || $(realpath $(dirname "${0}"))/postfix.sh
|
||||||
service mariadb start
|
service mariadb start
|
||||||
|
|
||||||
# Build Docker container
|
# Build Docker container
|
Loading…
Reference in New Issue
Block a user