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