docker-compose.yml:
version: "3.7"
services:
word-view:
build:
context: .
dockerfile: Dockerfile
image: word-view
container_name: word-view
environment:
RUN_MODEL: --spring.profiles.active=prod
JAVA_OPTS: -Xms200m -Xmx200m
ports:
- 8099:80
volumes:
- ./volume/data:/app
restart: always
Dockerfile:
FROM centos:centos7
MAINTAINER WJRONG
VOLUME ["/app"]
VOLUME ["/app/bin"]
VOLUME ["/app/data"]
VOLUME ["/app/logs"]
WORKDIR /app
ADD jdk-8u202-linux-x64.tar.gz /usr/local/java/
ADD Apache_OpenOffice_4.1.11_Linux_x86-64_install-rpm_zh-CN.tar.gz /tmp/
ADD mkfontscale.tar.gz /app/fonts/
ADD fonts.tar.gz /usr/share/fonts/
COPY libXext-1.3.3-3.el7.x86_64.rpm /app/lib/
COPY freetype-2.8-14.el7.x86_64.rpm /app/lib/
#COPY fonts/ /usr/share/fonts/
ADD word-view-0.0.1-SNAPSHOT.jar /app/bin/demo.jar
# 安装OpenOffice组件
RUN cd /tmp && \
yum localinstall -y zh-CN/RPMS/*.rpm && \
yum install -y zh-CN/RPMS/desktop-integration/openoffice4.1.11-redhat-menus-4.1.11-9808.noarch.rpm && \
yum clean all && \
rm -rf zh-CN
# 安装依赖库
RUN cd /app/lib && \
yum localinstall -y libXext-1.3.3-3.el7.x86_64.rpm && \
yum localinstall -y freetype-2.8-14.el7.x86_64.rpm
#RUN yum install libXext.x86_64
#RUN yum install freetype
RUN cp -a /usr/lib64/libXext.so.6 /opt/openoffice4/program/
RUN cp -a /usr/lib64/libfreetype.so.6 /opt/openoffice4/program/
RUN yum groupinstall -y "X Window System"
# 执行离线安装mkfontscale和fontconfig命令
RUN cd /app/fonts/ && \
rpm -ivh /app/fonts/*.rpm --nodeps --force && \
rm -rf /app/fonts
# 安装中文字体
RUN cd /usr/share/fonts/ && \
chmod -R 755 /usr/share/fonts && \
mkfontscale && \
mkfontdir && \
fc-cache -fv
# 配置JAVA_HOME等环境变量
ENV JAVA_HOME=/usr/local/java/jdk1.8.0_202
ENV PATH=$JAVA_HOME/bin:$PATH
ENV CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
ENV LANG C.UTF-8
# 设置容器时区
ENV TZ=Asia/Shanghai
RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone
# 配置JVM默认参数
ENV JAVA_OPTS="-Xms256m -Xmx256m"
EXPOSE 80
CMD java -jar ${JAVA_OPTS} /app/bin/demo.jar ${RUN_MODEL}