diff --git a/dmdb/Dockerfile b/dmdb/Dockerfile index 1d6475e..cbaf0e4 100644 --- a/dmdb/Dockerfile +++ b/dmdb/Dockerfile @@ -1,26 +1,25 @@ -FROM ubuntu:22.04 +# 构建阶段:复制安装文件并执行安装 +FROM ubuntu:22.04 AS builder ENV DM8_TMP_PATH="/dm8-tmp" -RUN mkdir -p ${DM8_TMP_PATH} - COPY DMInstall.bin ${DM8_TMP_PATH}/ - COPY install_setting.xml ${DM8_TMP_PATH}/ +RUN chmod +x ${DM8_TMP_PATH}/DMInstall.bin && \ + ${DM8_TMP_PATH}/DMInstall.bin -q ${DM8_TMP_PATH}/install_setting.xml && \ + rm -rf ${DM8_TMP_PATH} + +# 运行阶段:只复制安装后的软件和必要文件 +FROM ubuntu:22.04 + +COPY --from=builder /opt/dmdbms /opt/dmdbms COPY entrypoint.sh /entrypoint.sh -RUN chmod +x ${DM8_TMP_PATH}/DMInstall.bin - -RUN chmod +x /entrypoint.sh - -RUN useradd -m dmdba - -RUN ${DM8_TMP_PATH}/DMInstall.bin -q ${DM8_TMP_PATH}/install_setting.xml - -RUN rm -rf ${DM8_TMP_PATH} - -RUN mkdir -p /init.db +RUN useradd -m dmdba && \ + chmod +x /entrypoint.sh && \ + mkdir -p /init.db && \ + chown -R dmdba /opt/dmdbms WORKDIR / diff --git a/dmdb/build.sh b/dmdb/build.sh index 131da8a..e2df7da 100644 --- a/dmdb/build.sh +++ b/dmdb/build.sh @@ -1,3 +1,3 @@ #!/bin/bash -docker build -t dmdb:8 . \ No newline at end of file +docker build --no-cache -t dmdb:8 . \ No newline at end of file diff --git a/dmdb/entrypoint.sh b/dmdb/entrypoint.sh index c5adc40..5b97ed1 100644 --- a/dmdb/entrypoint.sh +++ b/dmdb/entrypoint.sh @@ -21,7 +21,7 @@ if [ ! -f "$DM_INI_PATH" ]; then echo "初始化数据库..." su - dmdba -c "${DM_PATH}/bin/dminit PATH=${DM_DATA_PATH} DB_NAME=${DB_NAME} SYSDBA_PWD=${DM_INIT_PWD} SYSAUDITOR_PWD=${DM_INIT_PWD}" - if -f "$DM_LICENSE_PATH"; then + if [ -f "$DM_LICENSE_PATH" ]; then echo "复制许可证..." cp $DM_LICENSE_PATH ${DM_PATH}/bin/dm.key chown dmdba ${DM_PATH}/bin/dm.key @@ -44,7 +44,7 @@ if [ ! -f "$DM_INI_PATH" ]; then done echo "初始化完成." else - if -f "$DM_LICENSE_PATH"; then + if [ -f "$DM_LICENSE_PATH" ]; then echo "复制许可证..." cp $DM_LICENSE_PATH ${DM_PATH}/bin/dm.key chown dmdba ${DM_PATH}/bin/dm.key