&& tar -xvf bin/tomcat-native.tar.gz -C "$nativeBuildDir" --strip-components=1
&& apk add --no-cache --virtual .native-build-deps
apr-dev
dpkg-dev dpkg
gcc
libc-dev
make
"openjdk${JAVA_VERSION%%[-~bu]*}"="$JAVA_ALPINE_VERSION"
openssl-dev
&& (
export CATALINA_HOME="$PWD"
&& cd "$nativeBuildDir/native"
&& gnuArch="$(dpkg-architecture --query DEB_BUILD_GNU_TYPE)"
&& ./configure
--build="$gnuArch"
--libdir="$TOMCAT_NATIVE_LIBDIR"
--prefix="$CATALINA_HOME"
--with-apr="$(which apr-1-config)"
--with-java-home="$(docker-java-home)"
--with-ssl=yes
&& make -j$(getconf _NPROCESSORS_ONLN)
&& make install
)
&& runDeps="$(
scanelf --needed --nobanner --recursive "$TOMCAT_NATIVE_LIBDIR"
| awk '{ gsub(/,/, "nso:", $2); print "so:" $2 }'
| sort -u
| xargs -r apk info --installed
| sort -u
)"
&& apk add --virtual .tomcat-native-rundeps $runDeps
&& apk del .fetch-deps .native-build-deps
&& rm -rf "$nativeBuildDir"
&& rm bin/tomcat-native.tar.gz
# verify Tomcat Native is working properly
RUN set -e
&& nativeLines="$(catalina.sh configtest 2>&1)"
&& nativeLines="$(echo "$nativeLines" | grep 'Apache Tomcat Native')"
&& nativeLines="$(echo "$nativeLines" | sort -u)"
&& if ! echo "$nativeLines" | grep 'INFO: Loaded APR based Apache Tomcat Native library' >&2; then
echo >&2 "$nativeLines";
exit 1;
fi
# 开发8080端口
EXPOSE 8080
# 执行命令
CMD ["catalina.sh", "run"]
创建镜像
[root@docker43 jre_tomcat]# docker build -t tomcat:1.0 . 查看镜像
[root@docker43 jre_tomcat]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
tomcat 1.0 64c9cec4375d 7 seconds ago 124 MB
alpine_jre latest 614bc57ab66e 8 minutes ago 91.1 MB
docker.io/alpine latest 196d12cf6ab1 3 weeks ago 4.41 MB 2.3.构建tomcat_web镜像
创建tomcat_web目录(包含Dockerfile和启动文件)
[root@docker43 ~]# cd /opt/
[root@docker43 opt]# mkdir tomcat_web && cd tomcat_web && touch Dockerfile && touch start.sh
[root@docker43 tomcat_web]# ll
总用量 0
-rw-r--r-- 1 root root 0 10月 6 17:53 Dockerfile










