Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/solr/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在docker映像中添加.jar文件_Docker_Solr_Jar - Fatal编程技术网

在docker映像中添加.jar文件

在docker映像中添加.jar文件,docker,solr,jar,Docker,Solr,Jar,您好,我正在使用solr dockerfile并添加一个.jar文件,创建docker映像 这是我一直试图添加到docker映像中的.jar文件 ARG JAR_FILE=target/jts-core-1.15.0-javadoc.jar ADD ${JAR_FILE} /server/solr-webapp/webapp/WEB-INF/lib/testing.jar 下面是我用来创建的docker文件,我还添加了一个卷来保存数据。当我构建docker映像时,它会将.jar文件添加到我

您好,我正在使用solr dockerfile并添加一个.jar文件,创建docker映像

这是我一直试图添加到docker映像中的.jar文件

ARG JAR_FILE=target/jts-core-1.15.0-javadoc.jar
ADD  ${JAR_FILE} /server/solr-webapp/webapp/WEB-INF/lib/testing.jar

下面是我用来创建的docker文件,我还添加了一个卷来保存数据。当我构建docker映像时,它会将.jar文件添加到我指定的路径中。但是,它会删除在默认solr dockerfile中创建的所有其他jar文件

我可以在dockerfile中添加什么,以便它添加新的.jar文件并包含已经创建的.jar文件


FROM openjdk:11-jre

LABEL maintainer="Project Ranger team <mbyousaf@deloitte.co.uk>"
LABEL repository="https://github.com/docker-solr/docker-solr"

ARG SOLR_VERSION="8.5.2"
#ARG SOLR_SHA512="0a43401ecf7946b2724da2d43896cd505386a8f9b07ddc60256cb586873e7e58610d2c34b1cf797323bf06c7613b109527a15105dc2a11be6f866531a1f2cef6"
ARG SOLR_SHA512="02b9b90468f399701dba26695c9af6cd205f47916a06e26838613fe238594e9902de6ef3b42ec8257d195e37589adf8427d9b7962557731e91949fbef06bb544"
#ARG SOLR_KEYS="E58A6F4D5B2B48AC66D5E53BD4F181881A42F9E6"
ARG SOLR_KEYS="86EDB9C33B8517228E88A8F93E48C0C6EF362B9E"
# If specified, this will override SOLR_DOWNLOAD_SERVER and all ASF mirrors. Typically used downstream for custom builds
ARG SOLR_DOWNLOAD_URL

# Override the solr download location with e.g.:
#   docker build -t mine --build-arg SOLR_DOWNLOAD_SERVER=http://www-eu.apache.org/dist/lucene/solr .
ARG SOLR_DOWNLOAD_SERVER

USER root
# Add Tini
ENV TINI_VERSION v0.18.0
ADD https://github.com/krallin/tini/releases/download/${TINI_VERSION}/tini /tini
RUN chmod +x /tini

RUN microdnf --setopt=tsflags=nodocs install -y acl dirmngr gnupg lsof procps wget && microdnf clean all;\
  cd /usr/local/bin; wget -nv https://github.com/apangin/jattach/releases/download/v1.5/jattach; chmod 755 jattach; \
  echo >jattach.sha512 "d8eedbb3e192a8596c08efedff99b9acf1075331e1747107c07cdb1718db2abe259ef168109e46bd4cf80d47d43028ff469f95e6ddcbdda4d7ffa73a20e852f9  jattach"; \
  sha512sum -c jattach.sha512; rm jattach.sha512

ENV SOLR_USER="solr" \
    SOLR_UID="8983" \
    SOLR_GROUP="solr" \
    SOLR_GID="8983" \
    SOLR_CLOSER_URL="http://www.apache.org/dyn/closer.lua?filename=lucene/solr/$SOLR_VERSION/solr-$SOLR_VERSION.tgz&action=download" \
    SOLR_DIST_URL="https://www.apache.org/dist/lucene/solr/$SOLR_VERSION/solr-$SOLR_VERSION.tgz" \
    SOLR_ARCHIVE_URL="https://archive.apache.org/dist/lucene/solr/$SOLR_VERSION/solr-$SOLR_VERSION.tgz" \
    PATH="/opt/solr/bin:/opt/docker-solr/scripts:$PATH" \
    SOLR_INCLUDE=/etc/default/solr.in.sh \
    SOLR_HOME=/var/solr/data \
    SOLR_PID_DIR=/var/solr \
    SOLR_LOGS_DIR=/var/solr/logs \
    LOG4J_PROPS=/var/solr/log4j2.xml

RUN set -ex; \
  groupadd -r --gid "$SOLR_GID" "$SOLR_GROUP"; \
  useradd -r --uid "$SOLR_UID" --gid "$SOLR_GID" "$SOLR_USER"


RUN set -ex; \
  export GNUPGHOME="/tmp/gnupg_home"; \
  mkdir -p "$GNUPGHOME"; \
  chmod 700 "$GNUPGHOME"; \
  echo "disable-ipv6" >> "$GNUPGHOME/dirmngr.conf"; \
  for key in $SOLR_KEYS; do \
    found=''; \
    for server in \
      ha.pool.sks-keyservers.net \
      hkp://keyserver.ubuntu.com:80 \
      hkp://p80.pool.sks-keyservers.net:80 \
      pgp.mit.edu \
    ; do \
      echo "  trying $server for $key"; \
      gpg --batch --keyserver "$server" --keyserver-options timeout=10 --recv-keys "$key" && found=yes && break; \
      gpg --batch --keyserver "$server" --keyserver-options timeout=10 --recv-keys "$key" && found=yes && break; \
    done; \
    test -z "$found" && echo >&2 "error: failed to fetch $key from several disparate servers -- network issues?" && exit 1; \
  done; \
  exit 0

RUN set -ex; \
  export GNUPGHOME="/tmp/gnupg_home"; \
  MAX_REDIRECTS=1; \
  if [ -n "$SOLR_DOWNLOAD_URL" ]; then \
    # If a custom URL is defined, we download from non-ASF mirror URL and allow more redirects and skip GPG step
    # This takes effect only if the SOLR_DOWNLOAD_URL build-arg is specified, typically in downstream Dockerfiles
    MAX_REDIRECTS=4; \
    SKIP_GPG_CHECK=true; \
  elif [ -n "$SOLR_DOWNLOAD_SERVER" ]; then \
    SOLR_DOWNLOAD_URL="$SOLR_DOWNLOAD_SERVER/$SOLR_VERSION/solr-$SOLR_VERSION.tgz"; \
  fi; \
  for url in $SOLR_DOWNLOAD_URL $SOLR_CLOSER_URL $SOLR_DIST_URL $SOLR_ARCHIVE_URL; do \
    if [ -f "/opt/solr-$SOLR_VERSION.tgz" ]; then break; fi; \
    echo "downloading $url"; \
    if wget -t 10 --max-redirect $MAX_REDIRECTS --retry-connrefused -nv "$url" -O "/opt/solr-$SOLR_VERSION.tgz"; then break; else rm -f "/opt/solr-$SOLR_VERSION.tgz"; fi; \
  done; \
  if [ ! -f "/opt/solr-$SOLR_VERSION.tgz" ]; then echo "failed all download attempts for solr-$SOLR_VERSION.tgz"; exit 1; fi; \
  if [ -z "$SKIP_GPG_CHECK" ]; then \
    echo "downloading $SOLR_ARCHIVE_URL.asc"; \
    wget -nv "$SOLR_ARCHIVE_URL.asc" -O "/opt/solr-$SOLR_VERSION.tgz.asc"; \
    echo "$SOLR_SHA512 */opt/solr-$SOLR_VERSION.tgz" | sha512sum -c -; \
    (>&2 ls -l "/opt/solr-$SOLR_VERSION.tgz" "/opt/solr-$SOLR_VERSION.tgz.asc"); \
    gpg --batch --verify "/opt/solr-$SOLR_VERSION.tgz.asc" "/opt/solr-$SOLR_VERSION.tgz"; \
  else \
    echo "Skipping GPG validation due to non-Apache build"; \
  fi; \
  tar -C /opt --extract --file "/opt/solr-$SOLR_VERSION.tgz"; \
  (cd /opt; ln -s "solr-$SOLR_VERSION" solr); \
  rm "/opt/solr-$SOLR_VERSION.tgz"*; \
  rm -Rf /opt/solr/docs/ /opt/solr/dist/{solr-core-$SOLR_VERSION.jar,solr-solrj-$SOLR_VERSION.jar,solrj-lib,solr-test-framework-$SOLR_VERSION.jar,test-framework}; \
  mkdir -p /opt/solr/server/solr/lib /docker-entrypoint-initdb.d /opt/docker-solr; \
  chown -R 0:0 "/opt/solr-$SOLR_VERSION"; \
  find "/opt/solr-$SOLR_VERSION" -type d -print0 | xargs -0 chmod 0755; \
  find "/opt/solr-$SOLR_VERSION" -type f -print0 | xargs -0 chmod 0644; \
  chmod -R 0755 "/opt/solr-$SOLR_VERSION/bin" "/opt/solr-$SOLR_VERSION/contrib/prometheus-exporter/bin/solr-exporter" /opt/solr-$SOLR_VERSION/server/scripts/cloud-scripts; \
  cp /opt/solr/bin/solr.in.sh /etc/default/solr.in.sh; \
  mv /opt/solr/bin/solr.in.sh /opt/solr/bin/solr.in.sh.orig; \
  mv /opt/solr/bin/solr.in.cmd /opt/solr/bin/solr.in.cmd.orig; \
  chown root:0 /etc/default/solr.in.sh; \
  chmod 0664 /etc/default/solr.in.sh; \
  mkdir -p /var/solr/data /var/solr/logs; \
  (cd /opt/solr/server/solr; cp solr.xml zoo.cfg /var/solr/data/); \
  cp /opt/solr/server/resources/log4j2.xml /var/solr/log4j2.xml; \
  find /var/solr -type d -print0 | xargs -0 chmod 0770; \
  find /var/solr -type f -print0 | xargs -0 chmod 0660; \
  sed -i -e "s/\"\$(whoami)\" == \"root\"/\$(id -u) == 0/" /opt/solr/bin/solr; \
  sed -i -e 's/lsof -PniTCP:/lsof -t -PniTCP:/' /opt/solr/bin/solr; \
  chown -R "0:0" /opt/solr-$SOLR_VERSION /docker-entrypoint-initdb.d /opt/docker-solr; \
  chown -R "$SOLR_USER:0" /var/solr; \
  { command -v gpgconf; gpgconf --kill all || :; }; \
  rm -r "$GNUPGHOME"

COPY --chown=0:0 scripts /opt/docker-solr/scripts
RUN chmod -R +x /opt/docker-solr/scripts/*



COPY ${JAR_FILE} /server/solr-webapp/webapp/WEB-INF/lib/testing.jar

VOLUME /var/solr
EXPOSE 8983
WORKDIR /opt/solr
USER $SOLR_USER
RUN echo $PATH
RUN ls -ltr /opt/docker-solr/scripts
ENTRYPOINT ["docker-entrypoint.sh"]
CMD ["solr-foreground"]




来自openjdk:11JRE
标签维护人员=“项目护林员团队”
标签存储库=”https://github.com/docker-solr/docker-solr"
ARG SOLR_VERSION=“8.5.2”
#ARG SOLR_SHA512=“0A43401ECF7946B2724DA2D43896CD505386A8F9B07DDC60256CB586873E7E58610D2C34B1CF797323BF06C7613B109527A15105DC2A11BE6F866531A1F2EF6”
ARG SOLR_SHA512=“02b9b90468f399701dba26695c9af6cd205f47916a06e26838613fe238594e9902de6ef3b42ec8257d195e37589adf8427d9b7962557731e91949fbef06bb544”
#ARG SOLR_KEYS=“E58A6F4D5B2B48AC66D5E53BD4F181881A42F9E6”
ARG SOLR_KEYS=“86EDB9C33B8517228E88A8F93E48C0C6EF362B9E”
#如果指定,这将覆盖SOLR_DOWNLOAD_服务器和所有ASF镜像。通常用于自定义构建的下游
ARG SOLR\u下载\u URL
#覆盖solr下载位置,例如:
#docker build-t mine——build arg SOLR\u下载服务器=http://www-eu.apache.org/dist/lucene/solr .
ARG SOLR\u下载服务器
用户根
#添加Tini
环境TINI_版本v0.18.0
添加https://github.com/krallin/tini/releases/download/${TINI_VERSION}/TINI/TINI
运行chmod+x/tini
运行microdnf--setopt=tsflags=nodocs安装-y acl dirmngr gnupg lsof procps wget&µdnf clean all\
cd/usr/local/bin;wget-nvhttps://github.com/apangin/jattach/releases/download/v1.5/jattach; chmod 755 jattach\
echo>jattach.sha512“D8eedbb3e192a8596c08efedff99b9acf1075331e1747107c07cdb1718db2abe259ef168109e46bd4cf80d47d43028ff469f95e6ddcbda4d7ffa73a20e852f9 jattach”\
sha512sum-c jattach.sha512;rm jattach.sha512
ENV SOLR\u USER=“SOLR”\
SOLR\u UID=“8983”\
SOLR_GROUP=“SOLR”\
SOLR_GID=“8983”\
SOLR_CLOSER_URL=”http://www.apache.org/dyn/closer.lua?filename=lucene/solr/$SOLR\u VERSION/SOLR-$SOLR\u VERSION.tgz&action=download”\
SOLR_DIST_URL=”https://www.apache.org/dist/lucene/solr/$SOLR_VERSION/SOLR-$SOLR_VERSION.tgz“\
SOLR_归档文件_URL=”https://archive.apache.org/dist/lucene/solr/$SOLR_VERSION/SOLR-$SOLR_VERSION.tgz“\
PATH=“/opt/solr/bin:/opt/docker solr/scripts:$PATH”\
SOLR_INCLUDE=/etc/default/SOLR.in.sh\
SOLR_HOME=/var/SOLR/data\
SOLR\u PID\u DIR=/var/SOLR\
SOLR\u LOGS\u DIR=/var/SOLR/LOGS\
LOG4J_PROPS=/var/solr/log4j2.xml
运行set-ex\
groupadd-r--gid“$SOLR_gid”“$SOLR_GROUP”\
useradd-r--uid“$SOLR\u uid”--gid“$SOLR\u gid”“$SOLR\u USER”
运行set-ex\
export GNUPGHOME=“/tmp/gnupg_home”\
mkdir-p“$GNUPGHOME”\
chmod 700“$GNUPGHOME”\
echo“disable-ipv6”>>“$GNUPGHOME/dirmngr.conf”\
对于$SOLR_密钥中的密钥;做\
发现=“”\
对于中的服务器\
ha.pool.sks-keyservers.net\
hkp://keyserver.ubuntu.com:80 \
hkp://p80.pool.sks-keyservers.net:80 \
pgp.mit.edu\
; 做\
回显“为$key尝试$server”\
gpg--批处理--键服务器“$server”--键服务器选项超时=10--接收键“$key”&&found=yes&&break\
gpg--批处理--键服务器“$server”--键服务器选项超时=10--接收键“$key”&&found=yes&&break\
完成\
test-z“$found”&&echo>&2”错误:无法从多个不同的服务器获取$key--网络问题?&&exit 1\
完成\
出口0
运行set-ex\
export GNUPGHOME=“/tmp/gnupg_home”\
最大重定向=1\
如果[-n“$SOLR_DOWNLOAD_URL”];然后\
#如果定义了自定义URL,我们将从非ASF镜像URL下载,并允许更多重定向和跳过GPG步骤
#只有在指定了SOLR_DOWNLOAD_URL build arg(通常在下游Dockerfiles中)时,此选项才会生效
最大重定向=4\
跳过\u GPG\u检查=真\
elif[-n“$SOLR_下载服务器”];然后\
SOLR_DOWNLOAD_URL=“$SOLR_DOWNLOAD_SERVER/$SOLR_VERSION/SOLR-$SOLR_VERSION.tgz”\
fi\
对于$SOLR\u中的url下载\u url$SOLR\u关闭\u url$SOLR\u分布\u url$SOLR\u存档\u url;做\
如果[-f”/opt/solr-$solr_VERSION.tgz“;然后打破;fi\
echo“下载$url”\
如果wget-t10--max redirect$max_REDIRECTS--retry-nv“$url”-O“/opt/solr-$solr_VERSION.tgz”;然后打破;else rm-f“/opt/solr-$solr_VERSION.tgz”;fi\
完成\
如果[!-f”/opt/solr-$solr_VERSION.tgz];然后echo“solr-$solr_VERSION.tgz的所有下载尝试均失败”;出口1;fi\
如果[-z“$SKIP_GPG_CHECK”];然后\
echo“下载$SOLR\u归档文件\u URL.asc”\
wget-nv“$SOLR\u ARCHIVE\u URL.asc”-O“/opt/SOLR-$SOLR\u VERSION.tgz.asc”\
echo“$SOLR_SHA512*/opt/SOLR-$SOLR_VERSION.tgz”| sha512sum-c-\
(>&2 ls-l“/opt/solr-$solr_VERSION.tgz”“/opt/solr-$solr_VERSION.tgz.asc”)\
gpg—批处理—验证“/opt/solr-$solr\u VERSION.tgz.asc”“/opt/solr-$solr\u VERSION.tgz”\
否则\
echo“由于非Apache构建而跳过GPG验证”\
fi\
tar-C/opt--extract--file“/opt/solr-$solr_VERSION.tgz”\
(cd/opt;ln-s“solr-$solr_版本”solr)\
rm“/opt/solr-$solr_VERSION.tgz”*\
rm-Rf/opt/solr/docs//opt/solr/dist/{solr-core-$solr_VERSION.jar,solr-solrj-$solr_VERSION.jar,solrj-lib,solr测试框架-$solr_VERSION.jar,测试框架}\
mkdir-p/opt/solr/server/solr/lib/docker入口点initdb.d/opt/docker-solr\
chown-r0:0“/opt/solr-$solr_VERSION”\
查找“/opt/solr-$solr_VERSION”-类型d-print0 | xargs-0 chmod 0755\
查找“/opt/solr-$solr_VERSION”-type f-print0 | xargs-0 chmod 0644\
chmod-R 0755“/opt/solr-$solr_VERSION/bin”“/opt/solr-$solr_VERSION/contrib/prometheus exporter/bin/solr exporter”/opt/solr-$solr_VERSION/server/scripts/cloud scripts\
cp/opt/solr/bin/solr。
COPY <PATH TO YOUR JAR ON MACHINE> <PATH TO THE JAR YOU WANT IN THE DOCKER IMAGE>
COPY target/jts-core-1.15.0-javadoc.jar target/jts-core-1.15.0-javadoc.jar
COPY target/jts-core-1.15.0-javadoc.jar target/jts-core-1.15.0-javadoc.jar
ARG JAR_FILE=target/jts-core-1.15.0-javadoc.jar
ADD  ${JAR_FILE} /server/solr-webapp/webapp/WEB-INF/lib/testing.jar
COPY <Your jar file>/opt/solr-$SOLR_VERSION/<Input path here where to copy jar file"