docker/mimir/Dockerfile

108 lines
3.3 KiB
Docker

FROM docker.mimirdb.info/alpine_oraclejdk8_nginx
# Metadata
LABEL base.image="docker.mimirdb.info/alpine_oraclejdk8_nginx"
LABEL version="0.3"
LABEL software="Vizier"
LABEL software.version="0.2.20190905"
LABEL description="an open source, provenance aware, iterative data cleaning tool"
LABEL website="http://vizierdb.info"
LABEL sourcecode="https://github.com/VizierDB"
LABEL documentation="https://github.com/VizierDB/web-api/wiki"
LABEL tags="CSV,Data Cleaning,Databases,Provenance,Workflow,Machine Learning"
ARG gituser
ARG gitpass
ARG MIMIR_BRANCH=master
ENV RUN_SSH=true
ENV PULL_MIMIR=true
ENV RESTORE_BACKUP=true
ENV SPARK_HOST=namenode
ENV NEW_MIMIR_DB_FROM_S3=true
ENV NEW_HIVE_METASTORE_FROM_S3=true
ENV HDFS_CONF_dfs_client_use_datanode_hostname=false
ENV DATA_STAGING_TYPE=s3
EXPOSE 33388
EXPOSE 22
RUN echo "@testing http://dl-4.alpinelinux.org/alpine/edge/testing" >> /etc/apk/repositories \
&& apk add --update \
build-base alpine-sdk \
fuse fuse-dev \
automake autoconf git \
libressl-dev \
curl-dev libxml2-dev \
ca-certificates \
bash \
git \
curl \
sed \
openssh \
supervisor \
&& rm /var/cache/apk/* \
&& mkdir -p /usr/local/source/web-api/.vizierdb
ENV IAM_ROLE=none
ENV AWS_ACCESS_KEY_ID=value
ENV AWS_SECRET_ACCESS_KEY=value
ENV USE_S3_VOLUME=true
ENV S3_ENDPOINT=
ENV S3A_ENDPOINT="https://s3.vizier.app/"
ENV S3_BUCKET_ACL=private
ENV S3_BUCKET_NAME=none
ENV MOUNT_POINT=/usr/local/source/web-api/.vizierdb
ENV MIMIR_HOST="vizier-mimir.local"
ENV MIMIR_DATA_DIR="/usr/local/source/web-api/.vizierdb/mimir"
ARG S3FS_VERSION=v1.82
RUN git clone https://github.com/s3fs-fuse/s3fs-fuse.git && \
cd s3fs-fuse \
git checkout tags/${S3FS_VERSION} && \
./autogen.sh && \
./configure --prefix=/usr && \
make && \
make install
RUN s3fs --version
#setup ssh
RUN echo 'root:odinlab' |chpasswd
RUN sed -ri 's/^#?PermitRootLogin\s+.*/PermitRootLogin yes/' /etc/ssh/sshd_config \
&& sed -ri 's/UsePAM yes/#UsePAM yes/g' /etc/ssh/sshd_config \
&& ssh-keygen -f /etc/ssh/ssh_host_rsa_key -N '' -t rsa \
&& ssh-keygen -f /etc/ssh/ssh_host_dsa_key -N '' -t dsa \
&& ssh-keygen -f /etc/ssh/ssh_host_ecdsa_key -N '' -t ecdsa \
&& ssh-keygen -f /etc/ssh/ssh_host_ed25519_key -N '' -t ed25519
#setup mimir
RUN curl -sL "https://github.com/sbt/sbt/releases/download/v0.13.15/sbt-0.13.15.tgz" | gunzip | tar -x -C /usr/local/source/ \
&& chmod 0755 /usr/local/source/sbt/bin/sbt \
&& git clone https://github.com/UBOdin/mimir.git /usr/local/source/mimir \
&& cd /usr/local/source/mimir \
&& git checkout -b local_$MIMIR_BRANCH origin/$MIMIR_BRANCH \
&& ../sbt/bin/sbt publish
RUN cd /usr/local/source/mimir \
&& ../sbt/bin/sbt "runMimirVizier -X LOG LOGM remoteSpark NO-VISTRAILS"
ENV PULL_CODE=15
RUN cd /usr/local/source/mimir \
&& git pull \
&& rm -r /root/.m2/repository/info/mimirdb/mimir-core_2.11/0.3-SNAPSHOT \
&& ../sbt/bin/sbt publish
COPY run_init.sh /usr/local/source/run_init.sh
COPY run_mimir.sh /usr/local/source/run_mimir.sh
COPY entrypoint.sh /usr/local/source/entrypoint.sh
COPY supervisord.conf /etc/supervisord.conf
RUN chmod +x /usr/local/source/run_init.sh \
/usr/local/source/run_mimir.sh \
/usr/local/source/entrypoint.sh
ENTRYPOINT ["\/bin\/bash", "-c", "/usr/local/source/entrypoint.sh"]