普元数据资产管理平台 普元数据资产管理平台
  • 7.1GA (opens new window)
  • 7.1.1 (opens new window)
  • 7.2GA (opens new window)
  • 7.3GA (opens new window)
  • 7.3.1 (opens new window)
产品简介
快速开始
安装指南
业务门户
管理门户
技术门户
常见问题解答
开发指南
更新日志
  • dockerfile-说明
  • 基础镜像
  • 微服务版镜像
  • damp 的 dockerfile
  • 构建镜像
  • 启动镜像
  • 套件版镜像
  • damp 的dockerfile
  • 构建镜像
  • 启动镜像

#
dockerfile 说明

产品介质中默认没有镜像介质,需要根据具体使用场景自行准备。下文中针对微服务版本和套件版本分别提供了示例的dockerfile,可以以此为参照完成本地镜像打包。 另外EOS提供了一些标准镜像,如有需要可以参考EOS文档自取。

# 基础镜像

  • 查看当前系统架构

    arch
    
  • 根据 CPU 架构选择对应镜像

    # 使用 x64 架构
    FROM registry.cn-shanghai.aliyuncs.com/primeton-pub/rockylinux:8.8-jdk8
    # 使用 aarch64 镜像, 请替换为镜像结尾`-arm`
    FROM registry.cn-shanghai.aliyuncs.com/primeton-pub/rockylinux:8.8-jdk8-arm
    
  • 本文当中使用 127.0.0.1 为示例 IP 地址,真实环境需要将 127.0.0.1 替换当前环境真实运行的 IP 地址

# 微服务版镜像

# damp 的 dockerfile

FROM registry.cn-shanghai.aliyuncs.com/primeton-pub/rockylinux:8.8-jdk8
MAINTAINER www.primeton.com
ENV APP_NAME=DAMP APP_PORT=28078 \
    EOS_SYS_KEY= EOS_PROFILE= \
    REDIS_HOST= REDIS_PORT= REDIS_USER= REDIS_PASSWORD= REDIS_CLUSTER_NODES= \
    REDIS_SENTINEL_MASTER= REDIS_SENTINEL_NODES= REDIS_SENTINEL_USER= REDIS_SENTINEL_PASSWORD= \
    NACOS_URL= NACOS_USER= NACOS_PASSWORD= \
    SW_URL= JAVA_OPTS= PATCH_URLS= LICENSE_URL=

WORKDIR /opt/server
ADD Primeton_DAMP_7.5.0_Server.tar.gz .

RUN \
    sed -i "/export APP_NAME=.*$/cexport APP_NAME=${APP_NAME}" bin/startup.sh ;\
    sed -i "/^export EOS_DAP_MEM_OPTS=/d" bin/startup.sh ;\
    \
    sed -i "/spring.application.name=.*$/cspring.application.name=${APP_NAME}" config/application.properties ;\
    \
    sed -i "16,36s/<configValue key=\"Database-Type\">.*/<configValue key=\"Database-Type\">\${DB_TYPE}<\/configValue>/" config/${APP_NAME}/config/user-config.xml ;\
    sed -i "16,36s/<configValue key=\"C3p0-DriverClass\">.*/<configValue key=\"C3p0-DriverClass\">\${DB_DRIVER}<\/configValue>/" config/${APP_NAME}/config/user-config.xml ;\
    sed -i "16,36s/<configValue key=\"C3p0-Url\">.*/<configValue key=\"C3p0-Url\">\${DB_URL}<\/configValue>/" config/${APP_NAME}/config/user-config.xml ;\
    sed -i "16,36s/<configValue key=\"C3p0-UserName\">.*/<configValue key=\"C3p0-UserName\">\${DB_USER}<\/configValue>/" config/${APP_NAME}/config/user-config.xml ;\
    sed -i "16,36s/<configValue key=\"C3p0-Password\">.*/<configValue key=\"C3p0-Password\">\${DB_PASSWD}<\/configValue>/" config/${APP_NAME}/config/user-config.xml


RUN echo -e '\
if [[ "${PATCH_URLS}" != "" ]]; \n\
then \n\
    cd /opt/server/lib \n\
    IFS="," read -ra urls <<< "$PATCH_URLS" \n\
    for url in "${urls[@]}" \n\
    do \n\
        curl -O $url \n\
        filename=$(basename "$url") \n\
        if [[ "${filename}" == *".zip" ]]; \n\
        then \n\
            unzip ${filename} && rm -f ${filename} \n\
        fi \n\
    done \n\
fi \n\
if [[ "${LICENSE_URL}" != "" ]]; \n\
then \n\
    curl -o /opt/primetonlicense.xml $LICENSE_URL \n\
fi \n\
sed -i "/server.port=.*$/cserver.port=${APP_PORT}" /opt/server/config/application.properties \n\
if [[ "${EOS_SYS_KEY}" != "" ]]; \n\
then \n\
    sed -i "/eos.application.sys-key=.*$/ceos.application.sys-key=${EOS_SYS_KEY}" /opt/server/config/application.properties \n\
fi \n\
if [[ "${EOS_PROFILE}" != "" ]]; \n\
then \n\
    sed -i "/eos.profiles.active=.*$/ceos.profiles.active=${EOS_PROFILE}" /opt/server/config/application.properties \n\
fi \n\
if [[ "${REDIS_HOST}" != "" ]]; \n\
then \n\
    sed -i "/spring.redis.host=.*$/cspring.redis.host=${REDIS_HOST}" /opt/server/config/application.properties \n\
    sed -i "/spring.redis.port=.*$/cspring.redis.port=${REDIS_PORT}" /opt/server/config/application.properties \n\
    sed -i "/spring.redis.username=.*$/cspring.redis.username=${REDIS_USER}" /opt/server/config/application.properties \n\
    sed -i "/spring.redis.password=.*$/cspring.redis.password=${REDIS_PASSWORD}" /opt/server/config/application.properties \n\
elif [[ "${REDIS_CLUSTER_NODES}" != "" ]]; \n\
then \n\
    sed -i "/spring.redis.cluster.nodes=.*$/cspring.redis.cluster.nodes=${REDIS_CLUSTER_NODES}" /opt/server/config/application.properties \n\
    sed -i "/spring.redis.username=.*$/cspring.redis.username=${REDIS_USER}" /opt/server/config/application.properties \n\
    sed -i "/spring.redis.password=.*$/cspring.redis.password=${REDIS_PASSWORD}" /opt/server/config/application.properties \n\
    sed -i "/spring.redis.host=.*$/c#spring.redis.host=" /opt/server/config/application.properties \n\
    sed -i "/spring.redis.port=.*$/c#spring.redis.port=" /opt/server/config/application.properties \n\
elif [[ "${REDIS_SENTINEL_NODES}" != "" ]]; \n\
then \n\
    sed -i "/spring.redis.sentinel.master=.*$/cspring.redis.sentinel.master=${REDIS_SENTINEL_MASTER}" /opt/server/config/application.properties \n\
    sed -i "/spring.redis.sentinel.nodes=.*$/cspring.redis.sentinel.nodes=${REDIS_SENTINEL_NODES}" /opt/server/config/application.properties \n\
    sed -i "/spring.redis.sentinel.username=.*$/cspring.redis.sentinel.username=${REDIS_SENTINEL_USER}" /opt/server/config/application.properties \n\
    sed -i "/spring.redis.sentinel.password=.*$/cspring.redis.sentinel.password=${REDIS_SENTINEL_PASSWORD}" /opt/server/config/application.properties \n\
    sed -i "/spring.redis.host=.*$/c#spring.redis.host=" /opt/server/config/application.properties \n\
    sed -i "/spring.redis.port=.*$/c#spring.redis.port=" /opt/server/config/application.properties \n\
    sed -i "/spring.redis.username=.*$/c#spring.redis.username=" /opt/server/config/application.properties \n\
    sed -i "/spring.redis.password=.*$/c#spring.redis.password=" /opt/server/config/application.properties \n\
else \n\
    sed -i "/spring.redis.timeout=.*$/c#spring.redis.timeout=" /opt/server/config/application.properties \n\
    sed -i "/spring.redis.host=.*$/c#spring.redis.host=" /opt/server/config/application.properties \n\
    sed -i "/spring.redis.port=.*$/c#spring.redis.port=" /opt/server/config/application.properties \n\
    sed -i "/spring.redis.username=.*$/c#spring.redis.username=" /opt/server/config/application.properties \n\
    sed -i "/spring.redis.password=.*$/c#spring.redis.password=" /opt/server/config/application.properties \n\
    sed -i "/spring.redis.lettuce.pool.max-active=.*$/c#spring.redis.lettuce.pool.max-active=" /opt/server/config/application.properties \n\
    sed -i "/spring.redis.lettuce.pool.max-idle=.*$/c#spring.redis.lettuce.pool.max-idle=" /opt/server/config/application.properties \n\
    sed -i "/spring.redis.lettuce.pool.max-wait=.*$/c#spring.redis.lettuce.pool.max-wait=" /opt/server/config/application.properties \n\
    sed -i "/spring.redis.lettuce.pool.min-idle=.*$/c#spring.redis.lettuce.pool.min-idle=" /opt/server/config/application.properties \n\
    sed -i "/spring.redis.lettuce.shutdown-timeout=.*$/c#spring.redis.lettuce.shutdown-timeout=" /opt/server/config/application.properties \n\
fi \n\
if [[ "${NACOS_URL}" == "" ]]; \n\
then \n\
    sed -i "/spring.cloud.nacos.discovery.enabled=.*$/cspring.cloud.nacos.discovery.enabled=false" /opt/server/config/application-nacos.properties \n\
    sed -i "/spring.cloud.nacos.config.enabled=.*$/cspring.cloud.nacos.config.enabled=false" /opt/server/config/bootstrap.properties \n\
else \n\
    sed -i "/spring.cloud.nacos.discovery.enabled=.*$/cspring.cloud.nacos.discovery.enabled=true" /opt/server/config/application-nacos.properties \n\
    sed -i "/spring.cloud.nacos.discovery.server-addr=.*$/cspring.cloud.nacos.discovery.server-addr=${NACOS_URL}" /opt/server/config/application-nacos.properties \n\
    sed -i "/spring.cloud.nacos.config.enabled=.*$/cspring.cloud.nacos.config.enabled=true" /opt/server/config/bootstrap.properties \n\
    sed -i "/spring.cloud.nacos.config.server-addr=.*$/cspring.cloud.nacos.config.server-addr=${NACOS_URL}" /opt/server/config/bootstrap.properties \n\
    sed -i "/spring.cloud.nacos.username=.*$/cspring.cloud.nacos.username=${NACOS_USER}" /opt/server/config/bootstrap.properties \n\
    sed -i "/spring.cloud.nacos.password=.*$/cspring.cloud.nacos.password=${NACOS_PASSWORD}" /opt/server/config/bootstrap.properties \n\
fi \n\
if [[ "${SW_URL}" == "" ]]; \n\
then \n\
    /opt/server/bin/startup.sh run -opens \n\
else \n\
    sed -i '\''/-DSW_AGENT_COLLECTOR_BACKEND_SERVICES=.*$/cexport JAVA_OPTS="$JAVA_OPTS -DSW_AGENT_COLLECTOR_BACKEND_SERVICES=${SW_URL}"'\'' /opt/server/bin/startup.sh \n\
    /opt/server/bin/startup.sh run -opens -apm \n\
fi \n\
' > /opt/start.sh

RUN chmod +x /opt/start.sh
RUN chmod +x /opt/server/bin/*.sh
RUN chmod +x /opt/server/*.jar

EXPOSE ${APP_PORT}
CMD /bin/bash -c "/opt/start.sh"

# 构建镜像

  • 下载 Primeton_DAMP_7.5.0_Server.tar.gz
  • 创建 Dockerfile-DAMP
  • 构建 docker build -t damp:7.5.0 -f Dockerfile-DAMP .
  • 运行 damp 镜像

# 启动镜像

docker run -d --name damp \
  -e JAVA_OPTS="'-DDB_TYPE=mysql -DDB_DRIVER=com.mysql.jdbc.Driver -DDB_URL=jdbc:mysql://127.0.0.1:3306/damp?characterEncoding=utf8&useSSL=false -DDB_USER=root ˚v-DDB_PASSWD=primeton'" \
  -e NACOS_URL=127.0.0.1:8848 \
  -e REDIS_HOST=127.0.0.1 \
  -e REDIS_PORT=6379 \
  -e REDIS_PASSWORD=primeton \
  -p 28078:28078 \
  damp:7.5.0

# 套件版镜像

# damp 的dockerfile

FROM registry.cn-shanghai.aliyuncs.com/primeton-pub/rockylinux:8.8-jdk8
MAINTAINER www.primeton.com
ENV APP_NAME=DAMP APP_PORT=28084 \
    EOS_SYS_KEY= EOS_PROFILE= \
    REDIS_HOST= REDIS_PORT= REDIS_USER= REDIS_PASSWORD= REDIS_CLUSTER_NODES= \
    REDIS_SENTINEL_MASTER= REDIS_SENTINEL_NODES= REDIS_SENTINEL_USER= REDIS_SENTINEL_PASSWORD= \
    NACOS_URL= NACOS_USER= NACOS_PASSWORD= DGS_URL= \
    SW_URL= JAVA_OPTS= PATCH_URLS= LICENSE_URL=

WORKDIR /opt/server
ADD Primeton_DAMP_7.5.0_Standalone.tar.gz .

RUN \
    sed -i "/export APP_NAME=.*$/cexport APP_NAME=${APP_NAME}" bin/startup.sh ;\
    sed -i "/^export EOS_DAP_MEM_OPTS=/d" bin/startup.sh ;\
    \
    sed -i "/spring.application.name=.*$/cspring.application.name=${APP_NAME}" config/application.properties ;\
    \
    sed -i "16,36s/<configValue key=\"Database-Type\">.*/<configValue key=\"Database-Type\">\${DB_TYPE}<\/configValue>/" config/${APP_NAME}/config/user-config.xml ;\
    sed -i "16,36s/<configValue key=\"C3p0-DriverClass\">.*/<configValue key=\"C3p0-DriverClass\">\${DB_DRIVER}<\/configValue>/" config/${APP_NAME}/config/user-config.xml ;\
    sed -i "16,36s/<configValue key=\"C3p0-Url\">.*/<configValue key=\"C3p0-Url\">\${DB_URL}<\/configValue>/" config/${APP_NAME}/config/user-config.xml ;\
    sed -i "16,36s/<configValue key=\"C3p0-UserName\">.*/<configValue key=\"C3p0-UserName\">\${DB_USER}<\/configValue>/" config/${APP_NAME}/config/user-config.xml ;\
    sed -i "16,36s/<configValue key=\"C3p0-Password\">.*/<configValue key=\"C3p0-Password\">\${DB_PASSWD}<\/configValue>/" config/${APP_NAME}/config/user-config.xml


RUN echo -e '\
if [[ "${PATCH_URLS}" != "" ]]; \n\
then \n\
    cd /opt/server/lib \n\
    IFS="," read -ra urls <<< "$PATCH_URLS" \n\
    for url in "${urls[@]}" \n\
    do \n\
        curl -O $url \n\
        filename=$(basename "$url") \n\
        if [[ "${filename}" == *".zip" ]]; \n\
        then \n\
            unzip ${filename} && rm -f ${filename} \n\
        fi \n\
    done \n\
fi \n\
if [[ "${LICENSE_URL}" != "" ]]; \n\
then \n\
    curl -o /opt/primetonlicense.xml $LICENSE_URL \n\
fi \n\
sed -i "/server.port=.*$/cserver.port=${APP_PORT}" /opt/server/config/application.properties \n\
if [[ "${EOS_SYS_KEY}" != "" ]]; \n\
then \n\
    sed -i "/eos.application.sys-key=.*$/ceos.application.sys-key=${EOS_SYS_KEY}" /opt/server/config/application.properties \n\
fi \n\
if [[ "${EOS_PROFILE}" != "" ]]; \n\
then \n\
    sed -i "/eos.profiles.active=.*$/ceos.profiles.active=${EOS_PROFILE}" /opt/server/config/application.properties \n\
fi \n\
if [[ "${REDIS_HOST}" != "" ]]; \n\
then \n\
    sed -i "/spring.redis.host=.*$/cspring.redis.host=${REDIS_HOST}" /opt/server/config/application.properties \n\
    sed -i "/spring.redis.port=.*$/cspring.redis.port=${REDIS_PORT}" /opt/server/config/application.properties \n\
    sed -i "/spring.redis.username=.*$/cspring.redis.username=${REDIS_USER}" /opt/server/config/application.properties \n\
    sed -i "/spring.redis.password=.*$/cspring.redis.password=${REDIS_PASSWORD}" /opt/server/config/application.properties \n\
elif [[ "${REDIS_CLUSTER_NODES}" != "" ]]; \n\
then \n\
    sed -i "/spring.redis.cluster.nodes=.*$/cspring.redis.cluster.nodes=${REDIS_CLUSTER_NODES}" /opt/server/config/application.properties \n\
    sed -i "/spring.redis.username=.*$/cspring.redis.username=${REDIS_USER}" /opt/server/config/application.properties \n\
    sed -i "/spring.redis.password=.*$/cspring.redis.password=${REDIS_PASSWORD}" /opt/server/config/application.properties \n\
    sed -i "/spring.redis.host=.*$/c#spring.redis.host=" /opt/server/config/application.properties \n\
    sed -i "/spring.redis.port=.*$/c#spring.redis.port=" /opt/server/config/application.properties \n\
elif [[ "${REDIS_SENTINEL_NODES}" != "" ]]; \n\
then \n\
    sed -i "/spring.redis.sentinel.master=.*$/cspring.redis.sentinel.master=${REDIS_SENTINEL_MASTER}" /opt/server/config/application.properties \n\
    sed -i "/spring.redis.sentinel.nodes=.*$/cspring.redis.sentinel.nodes=${REDIS_SENTINEL_NODES}" /opt/server/config/application.properties \n\
    sed -i "/spring.redis.sentinel.username=.*$/cspring.redis.sentinel.username=${REDIS_SENTINEL_USER}" /opt/server/config/application.properties \n\
    sed -i "/spring.redis.sentinel.password=.*$/cspring.redis.sentinel.password=${REDIS_SENTINEL_PASSWORD}" /opt/server/config/application.properties \n\
    sed -i "/spring.redis.host=.*$/c#spring.redis.host=" /opt/server/config/application.properties \n\
    sed -i "/spring.redis.port=.*$/c#spring.redis.port=" /opt/server/config/application.properties \n\
    sed -i "/spring.redis.username=.*$/c#spring.redis.username=" /opt/server/config/application.properties \n\
    sed -i "/spring.redis.password=.*$/c#spring.redis.password=" /opt/server/config/application.properties \n\
else \n\
    sed -i "/spring.redis.timeout=.*$/c#spring.redis.timeout=" /opt/server/config/application.properties \n\
    sed -i "/spring.redis.host=.*$/c#spring.redis.host=" /opt/server/config/application.properties \n\
    sed -i "/spring.redis.port=.*$/c#spring.redis.port=" /opt/server/config/application.properties \n\
    sed -i "/spring.redis.username=.*$/c#spring.redis.username=" /opt/server/config/application.properties \n\
    sed -i "/spring.redis.password=.*$/c#spring.redis.password=" /opt/server/config/application.properties \n\
    sed -i "/spring.redis.lettuce.pool.max-active=.*$/c#spring.redis.lettuce.pool.max-active=" /opt/server/config/application.properties \n\
    sed -i "/spring.redis.lettuce.pool.max-idle=.*$/c#spring.redis.lettuce.pool.max-idle=" /opt/server/config/application.properties \n\
    sed -i "/spring.redis.lettuce.pool.max-wait=.*$/c#spring.redis.lettuce.pool.max-wait=" /opt/server/config/application.properties \n\
    sed -i "/spring.redis.lettuce.pool.min-idle=.*$/c#spring.redis.lettuce.pool.min-idle=" /opt/server/config/application.properties \n\
    sed -i "/spring.redis.lettuce.shutdown-timeout=.*$/c#spring.redis.lettuce.shutdown-timeout=" /opt/server/config/application.properties \n\
fi \n\
if [[ "${DGS_URL}" != "" ]]; \n\
then \n\
    sed -i "/public-resource.database.metadata.url=.*$/cpublic-resource.database.metadata.url=${DGS_URL}" /opt/server/config/application-pubresmng.properties \n\
fi \n\
' > /opt/start.sh

RUN chmod +x /opt/start.sh
RUN chmod +x /opt/server/bin/*.sh
RUN chmod +x /opt/server/*.jar

EXPOSE ${APP_PORT}
CMD /bin/bash -c "/opt/start.sh"

# 构建镜像

  • 准备 Primeton_DAMP_7.5.0_STANDALONE.tar.gz
  • 创建 Dockerfile-DAMP
  • 构建 docker build -t damp:7.5.0 -f Dockerfile-DAMP .
  • 运行 damp 镜像

# 启动镜像

docker run -d --name damp \
  -e JAVA_OPTS="'-DDB_TYPE=mysql -DDB_DRIVER=com.mysql.jdbc.Driver -DDB_URL=jdbc:mysql://127.0.0.1:3306/standalone?characterEncoding=utf8&useSSL=false -DDB_USER=root ˚v-DDB_PASSWD=primeton'" \
  -e REDIS_HOST=127.0.0.1 \
  -e REDIS_PORT=6379 \
  -e REDIS_PASSWORD=primeton \
  -p 28084:28084 \
  damp:7.5.0
上次更新: 2025/6/26下午4:53:30

← 7.2 升级至 7.3 产品密码配置说明 →