parent
0deabbb46f
commit
4e9d4b4445
4 changed files with 164 additions and 14 deletions
@ -0,0 +1,149 @@ |
|||||||
|
FROM ubuntu:12.04.5 |
||||||
|
|
||||||
|
# defines root user, to perform privileged operations |
||||||
|
USER root |
||||||
|
|
||||||
|
# enable apt mirrors (best performance due to use the closest repository) |
||||||
|
RUN readonly APT_SOURCES="/etc/apt/sources.list" \ |
||||||
|
&& readonly UBUNTU_RELEASE_NAME="$(cat /etc/lsb-release | grep CODENAME | cut -d '=' -f2)" \ |
||||||
|
&& sed --in-place \ |
||||||
|
--regexp-extended \ |
||||||
|
--expression \ |
||||||
|
"1s/^/deb mirror:\/\/mirrors\.ubuntu\.com\/mirrors\.txt "${UBUNTU_RELEASE_NAME}"-security main restricted universe multiverse\n\n/" \ |
||||||
|
--expression \ |
||||||
|
"1s/^/deb mirror:\/\/mirrors\.ubuntu\.com\/mirrors\.txt "${UBUNTU_RELEASE_NAME}"-backports main restricted universe multiverse\n/" \ |
||||||
|
--expression \ |
||||||
|
"1s/^/deb mirror:\/\/mirrors\.ubuntu\.com\/mirrors\.txt "${UBUNTU_RELEASE_NAME}"-updates main restricted universe multiverse\n/" \ |
||||||
|
--expression \ |
||||||
|
"1s/^/deb mirror:\/\/mirrors\.ubuntu\.com\/mirrors\.txt "${UBUNTU_RELEASE_NAME}" main restricted universe multiverse\n/" \ |
||||||
|
--expression \ |
||||||
|
"1s/^/\# Enable Ubuntu mirrors and multiverse\n/" \ |
||||||
|
"${APT_SOURCES}" |
||||||
|
|
||||||
|
# upgrade Ubuntu packages, install security updates and required packages |
||||||
|
RUN readonly UBUNTU_PACKAGES=" \ |
||||||
|
curl \ |
||||||
|
" \ |
||||||
|
&& apt-get update \ |
||||||
|
&& apt-get upgrade --assume-yes \ |
||||||
|
&& apt-get install --no-install-recommends \ |
||||||
|
--assume-yes \ |
||||||
|
${UBUNTU_PACKAGES} \ |
||||||
|
# remove apt cache in order to improve Docker image size |
||||||
|
&& apt-get clean |
||||||
|
|
||||||
|
## Solr |
||||||
|
# environment variables |
||||||
|
ENV SOLR_VERSION 3.5.0 |
||||||
|
ENV SOLR_USER solr |
||||||
|
ENV SOLR_UID 8983 |
||||||
|
ENV SOLR_PORT 8983 |
||||||
|
|
||||||
|
# declare required packages |
||||||
|
RUN readonly SOLR_PACKAGES=" \ |
||||||
|
openjdk-6-jre-headless \ |
||||||
|
tomcat6 \ |
||||||
|
" \ |
||||||
|
# install packages |
||||||
|
&& apt-get install \ |
||||||
|
--no-install-recommends \ |
||||||
|
--assume-yes \ |
||||||
|
${SOLR_PACKAGES} \ |
||||||
|
# remove apt cache in order to improve Docker image size |
||||||
|
&& apt-get clean |
||||||
|
|
||||||
|
# create group |
||||||
|
RUN groupadd \ |
||||||
|
--system \ |
||||||
|
--gid ${SOLR_UID} \ |
||||||
|
${SOLR_USER} \ |
||||||
|
# create user and add to group |
||||||
|
&& useradd \ |
||||||
|
--system \ |
||||||
|
--uid ${SOLR_UID} \ |
||||||
|
--gid ${SOLR_USER} \ |
||||||
|
${SOLR_USER} |
||||||
|
|
||||||
|
# create temp folder |
||||||
|
RUN mkdir /tmp/solr \ |
||||||
|
&& cd /tmp/solr \ |
||||||
|
# download Solr |
||||||
|
&& curl \ |
||||||
|
--silent \ |
||||||
|
--show-error \ |
||||||
|
--location \ |
||||||
|
--output apache-solr-${SOLR_VERSION}.tgz \ |
||||||
|
https://archive.apache.org/dist/lucene/solr/${SOLR_VERSION}/apache-solr-${SOLR_VERSION}.tgz \ |
||||||
|
# extract Solr |
||||||
|
&& tar \ |
||||||
|
--extract \ |
||||||
|
--gunzip \ |
||||||
|
--file \ |
||||||
|
apache-solr-${SOLR_VERSION}.tgz \ |
||||||
|
--directory \ |
||||||
|
/opt \ |
||||||
|
# link Solr folder |
||||||
|
&& ln \ |
||||||
|
--symbolic \ |
||||||
|
--force \ |
||||||
|
/opt/apache-solr-${SOLR_VERSION} \ |
||||||
|
/opt/solr \ |
||||||
|
# change permissions |
||||||
|
&& chown \ |
||||||
|
--recursive \ |
||||||
|
${SOLR_USER}:${SOLR_USER} \ |
||||||
|
/opt/apache-solr-${SOLR_VERSION} \ |
||||||
|
&& chown \ |
||||||
|
--recursive \ |
||||||
|
${SOLR_USER}:${SOLR_USER} \ |
||||||
|
/opt/solr \ |
||||||
|
# purge source files |
||||||
|
&& cd / \ |
||||||
|
&& rm \ |
||||||
|
--recursive \ |
||||||
|
--force \ |
||||||
|
/tmp/solr |
||||||
|
|
||||||
|
ADD schema.xml /opt/apache-solr-3.5.0/example/solr/conf/schema.xml |
||||||
|
|
||||||
|
## DUMB-init |
||||||
|
# more information at: https://github.com/Yelp/dumb-init |
||||||
|
|
||||||
|
# environment variables |
||||||
|
ENV DUMB_INIT_VERSION 1.2.0 |
||||||
|
|
||||||
|
# download |
||||||
|
RUN mkdir \ |
||||||
|
--parents \ |
||||||
|
/tmp/dumb-init \ |
||||||
|
&& cd /tmp/dumb-init \ |
||||||
|
&& curl \ |
||||||
|
--silent \ |
||||||
|
--show-error \ |
||||||
|
--location \ |
||||||
|
--remote-name \ |
||||||
|
https://github.com/Yelp/dumb-init/releases/download/v${DUMB_INIT_VERSION}/dumb-init_${DUMB_INIT_VERSION}_amd64.deb \ |
||||||
|
# install |
||||||
|
&& dpkg \ |
||||||
|
--install \ |
||||||
|
dumb-init_${DUMB_INIT_VERSION}_amd64.deb \ |
||||||
|
# remove temp folder |
||||||
|
&& cd / \ |
||||||
|
&& rm \ |
||||||
|
--force \ |
||||||
|
--recursive \ |
||||||
|
/tmp/dumb-init |
||||||
|
|
||||||
|
## Docker specifics |
||||||
|
# expose Solr service port |
||||||
|
EXPOSE ${SOLR_PORT} |
||||||
|
|
||||||
|
# drop back to the regular Solr user - good practice |
||||||
|
USER ${SOLR_USER} |
||||||
|
|
||||||
|
# change workdir to Solr folder |
||||||
|
WORKDIR /opt/solr/example |
||||||
|
|
||||||
|
# docker entrypoint/cmd configuration |
||||||
|
ENTRYPOINT ["/usr/bin/dumb-init", "--"] |
||||||
|
CMD ["java","-Xmx256m","-jar","start.jar"] |
||||||
Loading…
Reference in new issue