Skip to content
This repository has been archived by the owner on Jun 12, 2020. It is now read-only.

Working fcrepo again! Using S6 & confd for starting tomcat and creati… #4

Merged
merged 2 commits into from
May 7, 2020
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
42 changes: 32 additions & 10 deletions Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -24,20 +24,42 @@ ENV CATALINA_HOME=/usr/local/tomcat \
FCREPO_USER=fedoraUser \
FEDORA_USER_PASSWORD=fedoraUser_pw \
FEDORA_ADMIN=fedoraAdmin \
FEDORA_ADMIN_PASSWORD=fedoraAdmin_pw
FEDORA_ADMIN_PASSWORD=fedoraAdmin_pw \
CONFD_VERSION="0.16.0" \
CONFD_SHA256="255d2559f3824dd64df059bdc533fd6b697c070db603c76aaf8d1d5e6b0cc334" \
S6_OVERLAY_VERSION=${S6_OVERLAY_VERSION:-1.22.1.0}

## Dependencies
RUN GEN_DEP_PACKS="mariadb-client" && \
echo 'debconf debconf/frontend select Noninteractive' | debconf-set-selections && \
apt-get update && \
apt-get install -y --no-install-recommends $GEN_DEP_PACKS && \
## Cleanup phase.
apt-get purge -y --auto-remove -o APT::AutoRemove::RecommendsImportant=false && \
rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/*

## Install Tomcat admin

## Install Tomcat admin
# Official tomcat docker image doesn't enable these by default
# https://github.com/docker-library/tomcat/issues/184
RUN cp -rv /usr/local/tomcat/webapps.dist/manager /usr/local/tomcat/webapps/manager && \
cp -rv /usr/local/tomcat/webapps.dist/host-manager /usr/local/tomcat/webapps/host-manager && \
cp -rv /usr/local/tomcat/webapps.dist/ROOT /usr/local/tomcat/webapps/ROOT && \
sed -i 's/<Valve/<\!\-\-\ \n \<Valve/' /usr/local/tomcat/webapps/manager/META-INF/context.xml && \
sed -i 's/0:1" \/>/0:1\" \/> \n \-\->/' /usr/local/tomcat/webapps/manager/META-INF/context.xml && \
sed -i 's/<Valve/<\!\-\-\ \n \<Valve/' /usr/local/tomcat/webapps/host-manager/META-INF/context.xml && \
sed -i 's/0:1" \/>/0:1\" \/> \n \-\->/' /usr/local/tomcat/webapps/host-manager/META-INF/context.xml
#RUN cp -rv /usr/local/tomcat/webapps.dist/manager /usr/local/tomcat/webapps/manager && \
# cp -rv /usr/local/tomcat/webapps.dist/host-manager /usr/local/tomcat/webapps/host-manager && \
# cp -rv /usr/local/tomcat/webapps.dist/ROOT /usr/local/tomcat/webapps/ROOT && \
# sed -i 's/<Valve/<\!\-\-\ \n \<Valve/' /usr/local/tomcat/webapps/manager/META-INF/context.xml && \
# sed -i 's/0:1" \/>/0:1\" \/> \n \-\->/' /usr/local/tomcat/webapps/manager/META-INF/context.xml && \
# sed -i 's/<Valve/<\!\-\-\ \n \<Valve/' /usr/local/tomcat/webapps/host-manager/META-INF/context.xml && \
# sed -i 's/0:1" \/>/0:1\" \/> \n \-\->/' /usr/local/tomcat/webapps/host-manager/META-INF/context.xml


## CONFD - for fcrepo database and db user creation upon init
RUN curl -sSfL -o /usr/local/bin/confd https://github.com/kelseyhightower/confd/releases/download/v${CONFD_VERSION}/confd-${CONFD_VERSION}-linux-amd64 && \
sha256sum /usr/local/bin/confd | cut -f1 -d' ' | xargs test ${CONFD_SHA256} == && \
chmod +x /usr/local/bin/confd

## S6-Overlay
ADD https://github.com/just-containers/s6-overlay/releases/download/v$S6_OVERLAY_VERSION/s6-overlay-amd64.tar.gz /tmp/
RUN tar xzf /tmp/s6-overlay-amd64.tar.gz -C / && \
rm /tmp/s6-overlay-amd64.tar.gz


### ----------------- SYN -----------------
Expand All @@ -58,4 +80,4 @@ EXPOSE 8080

WORKDIR /opt/fcrepo

CMD ["catalina.sh", "run"]
ENTRYPOINT ["/init"]
12 changes: 12 additions & 0 deletions rootfs/etc/confd/conf.d/sql.toml
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
[template]
src = "fcrepo.sql.tpl"
dest = "/tmp/fcrepo.sql"
uid = 0
gid = 0
mode = "0644"
keys = [
"/fcrepo/db",
"/fcrepo/db/user",
"/fcrepo/db/password"
]
reload_cmd="mysql -h ${FCREPO_DB_HOST} -uroot -p${DB_ROOT_PASSWORD} < /tmp/fcrepo.sql"
4 changes: 4 additions & 0 deletions rootfs/etc/confd/templates/fcrepo.sql.tpl
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
CREATE DATABASE IF NOT EXISTS {{getv "/fcrepo/db"}} CHARACTER SET utf8 COLLATE utf8_general_ci;
CREATE USER IF NOT EXISTS '{{getv "/fcrepo/db/user"}}'@'%' IDENTIFIED BY '{{getv "/fcrepo/db/password"}}';
GRANT ALL PRIVILEGES ON {{getv "/fcrepo/db"}}.* to '{{getv "/fcrepo/db/user"}}'@'%';
FLUSH PRIVILEGES;
3 changes: 3 additions & 0 deletions rootfs/etc/cont-init.d/01-fcrepo-config
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
#!/usr/bin/with-contenv sh

/usr/local/bin/confd -onetime -backend env
3 changes: 3 additions & 0 deletions rootfs/etc/services.d/tomcat/finish
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
#!/usr/bin/execlineb -S0

s6-svscanctl -t /var/run/s6/services
4 changes: 4 additions & 0 deletions rootfs/etc/services.d/tomcat/run
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
#!/usr/bin/with-contenv sh

echo "Starting Tomcat."
catalina.sh run