Docker部署Spring应用:如何添加缺失的SteCommon.groovy文件
解决方案
1. 准备目标文件
先确认本地有SteCommon.groovy文件,建议把它放在项目内的./scripts/ste/目录下(可根据实际存放路径调整)。如果没有这个文件,得从项目仓库、团队共享资源或相关文档里获取——这是应用运行必需的脚本文件,没法跳过。
2. 修改Dockerfile添加文件部署逻辑
在现有Dockerfile中,添加创建目标目录和复制文件的指令,确保文件被放到容器内指定路径。修改后的完整Dockerfile如下:
# Use the official Tomcat image as the base image FROM tomcat:9-jdk17 # Set environment variables ENV JBP_CONFIG_OPEN_JDK_JRE='{jre: {version: 1.17+}}' \ JBP_CONFIG_TOMCAT='{ tomcat: { version: 9.0.+ }, context_path: /cloudsuite-car/maker }' \ CLOUDSUITE_BASE_DIR='/home/vcap/cloudsuite/config' \ CLOUDSUITE_PROFILE_DIR='/home/vcap/cloudsuite/config' \ CLOUDSUITE_DATA_DIR='/home/vcap/cloudsuite/data' \ CLOUDSUITE_LOG_DIR='/home/vcap/cloudsuite/log' \ CLOUDSUITE_DATA_SHARED='/home/vcap/cloudsuite/data' \ JDBC_DRIVERCLASSNAME='org.postgresql.Driver' \ JDBC_URL='jdbc:postgresql://car-postgres:5432/car' \ JDBC_USERNAME='postgres' \ JDBC_PASSWORD='postgres' \ CLOUDSUITE_LOG_LEVEL='TRACE' \ AUTHENTICATION_ACTIVE='false' \ digsig.validation.validationContext.qualificationSeverity='info' # Set Java options ENV JAVA_OPTS='-Duser.timezone=UTC -Djava.rmi.server.hostname=127.0.0.1 -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.port=5000 -Dcom.sun.management.jmxremote.rmi.port=5000' # Remove the default Tomcat webapps (optional) RUN rm -rf /usr/local/tomcat/webapps/* # 创建容器内的目标目录结构,避免因目录不存在导致复制失败 RUN mkdir -p /home/vcap/cloudsuite/config/scripts/ste # 复制本地的SteCommon.groovy到容器指定路径 # 注意:这里的./scripts/ste/SteCommon.groovy是本地文件路径,要和你实际存放位置一致 COPY ./scripts/ste/SteCommon.groovy /home/vcap/cloudsuite/config/scripts/ste/ # Copy your WAR file to the webapps folder of the Tomcat container COPY cloudsuite-car#maker.war /usr/local/tomcat/webapps/ROOT.war # Expose the default Tomcat port (optional, as the base image already does this) EXPOSE 8080
3. 验证与重新构建
修改完Dockerfile后,重新构建Docker镜像并启动容器,应用就能找到所需的脚本文件了。
内容的提问来源于stack exchange,提问作者StefanoSKAL
相关产品推荐
相关产品推荐

