Skip to content

Commit

Permalink
update Dockerfile
Browse files Browse the repository at this point in the history
  • Loading branch information
shiyindaxiaojie committed Sep 25, 2023
1 parent 8ef192e commit 90c165b
Show file tree
Hide file tree
Showing 5 changed files with 51 additions and 16 deletions.
19 changes: 13 additions & 6 deletions docker/Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -5,8 +5,9 @@ FROM openjdk:11-jdk-slim as builder
WORKDIR /app
ARG MODULE=sentinel-dashboard

# 复制应用程序 JAR 文件
# 复制必要文件
COPY $MODULE/target/${MODULE}.jar application.jar
COPY docker/entrypoint.sh entrypoint.sh

# 使用 Spring Boot 的分层模式提取 JAR 文件的依赖项
RUN java -Djarmode=layertools -jar application.jar extract
Expand All @@ -16,16 +17,20 @@ FROM openjdk:11-jdk-slim

# 定义镜像元数据和环境变量
LABEL maintainer="梦想歌 <shiyindaxiaojie@gmail.com>"
LABEL version="1.0.0"
LABEL version="1.8.6"
ARG USER=tmpuser
ARG GROUP=tmpgroup
ARG HOME=/app
ARG LOG=$HOME/logs
ENV START_DELAY_SECS 1
ENV JAVA_OPTS "-Xmx512m -Xms512m -Xmn256m"
ENV JVM_DEBUG "n"
ENV JVM_XMS "1g"
ENV JVM_XMX "1g"
ENV JVM_XMN "512m"
ENV JVM_MS "128m"
ENV JVM_MMS "320m"
ENV SPRING_PROFILES_ACTIVE "dev"
ENV SERVER_PORT "8080"
ENV MANAGEMENT_SERVER_PORT "9080"

# 创建普通用户并设置工作目录
RUN groupadd -g 1000 $GROUP \
Expand All @@ -42,6 +47,8 @@ COPY --from=builder /app/organization-dependencies ./
COPY --from=builder /app/modules-dependencies ./
COPY --from=builder /app/snapshot-dependencies/ ./
COPY --from=builder /app/application/ ./
COPY --from=builder /app/entrypoint.sh ./
RUN chmod +x entrypoint.sh

# 设置容器用户并创建日志目录
USER $USER
Expand All @@ -51,5 +58,5 @@ RUN mkdir $LOG \
&& ln -sf /dev/stderr $LOG/entrypoint.out

# 设置启动入口和端口
EXPOSE $SERVER_PORT $MANAGEMENT_SERVER_PORT
ENTRYPOINT echo "The application will start in ${START_DELAY_SECS}s..." && sleep ${START_DELAY_SECS} && exec java $JAVA_OPTS -noverify -XX:+AlwaysPreTouch -Djava.security.egd=file:/dev/./urandom "org.springframework.boot.loader.JarLauncher" "$@"
EXPOSE $SERVER_PORT
ENTRYPOINT ["./entrypoint.sh"]
13 changes: 13 additions & 0 deletions docker/entrypoint.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
#!/bin/bash

JAVA_OPTS="${JAVA_OPTS} -XX:+UseG1GC"
JAVA_OPTS="${JAVA_OPTS} -server -Xms${JVM_XMS} -Xmx${JVM_XMX} -Xmn${JVM_XMN} -XX:MetaspaceSize=${JVM_MS} -XX:MaxMetaspaceSize=${JVM_MMS}"
JAVA_OPTS="${JAVA_OPTS} -XX:-OmitStackTraceInFastThrow -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=${WORKDIR}/logs/java_heapdump.hprof"
JAVA_OPTS="${JAVA_OPTS} -XX:-UseLargePages"
if [[ "${JVM_DEBUG}" == "y" ]]; then
JAVA_OPTS="${JAVA_OPTS} -Xdebug -Xrunjdwp:transport=dt_socket,address=5005,server=y,suspend=n"
fi

echo "The application will start in ${START_DELAY_SECS}s..."
sleep ${START_DELAY_SECS}
exec java $JAVA_OPTS -noverify -XX:+AlwaysPreTouch -Djava.security.egd=file:/dev/./urandom "org.springframework.boot.loader.JarLauncher" "$@"
18 changes: 12 additions & 6 deletions sentinel-dashboard/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -497,10 +497,9 @@
<plugin>
<groupId>com.google.cloud.tools</groupId>
<artifactId>jib-maven-plugin</artifactId>
<version>${jib-maven-plugin.version}</version>
<configuration>
<from>
<image>openjdk:11-jre-slim</image>
<image>openjdk:11-jdk</image>
</from>
<to>
<image>${docker.image}</image>
Expand All @@ -519,19 +518,26 @@
<arg>/entrypoint.sh</arg>
</entrypoint>
<ports>
<port>9999</port>
<port>8080</port>
<port>9080</port>
</ports>
<environment>
<TZ>Asia/Shanghai</TZ>
<SPRING_OUTPUT_ANSI_ENABLED>ALWAYS</SPRING_OUTPUT_ANSI_ENABLED>
<START_DELAY_SECS>1</START_DELAY_SECS>
<JAVA_OPTS>-Xms256m -Xmx256m</JAVA_OPTS>
<JVM_DEBUG>n</JVM_DEBUG>
<JVM_XMS>1g</JVM_XMS>
<JVM_XMX>1g</JVM_XMX>
<JVM_XMN>512m</JVM_XMN>
<JVM_MS>128m</JVM_MS>
<JVM_MMS>320m</JVM_MMS>
<JAVA_OPTS>-Dserver.port=8080 -Dmanagement.server.port=9080</JAVA_OPTS>
<SPRING_PROFILES_ACTIVE>320m</SPRING_PROFILES_ACTIVE>
</environment>
<creationTime>USE_CURRENT_TIMESTAMP</creationTime>
<mainClass>${start-class}</mainClass>
</container>
<extraDirectories>
<paths>src/main/docker</paths>
<paths>src/main/docker/jib</paths>
<permissions>
<permission>
<file>/entrypoint.sh</file>
Expand Down
4 changes: 0 additions & 4 deletions sentinel-dashboard/src/main/docker/entrypoint.sh

This file was deleted.

13 changes: 13 additions & 0 deletions sentinel-dashboard/src/main/docker/jib/entrypoint.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
#!/bin/bash

JAVA_OPTS="${JAVA_OPTS} -XX:+UseG1GC"
JAVA_OPTS="${JAVA_OPTS} -server -Xms${JVM_XMS} -Xmx${JVM_XMX} -Xmn${JVM_XMN} -XX:MetaspaceSize=${JVM_MS} -XX:MaxMetaspaceSize=${JVM_MMS}"
JAVA_OPTS="${JAVA_OPTS} -XX:-OmitStackTraceInFastThrow -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=${WORKDIR}/logs/java_heapdump.hprof"
JAVA_OPTS="${JAVA_OPTS} -XX:-UseLargePages"
if [[ "${JVM_DEBUG}" == "y" ]]; then
JAVA_OPTS="${JAVA_OPTS} -Xdebug -Xrunjdwp:transport=dt_socket,address=5005,server=y,suspend=n"
fi

echo "The application will start in ${START_DELAY_SECS}s..."
sleep ${START_DELAY_SECS}
exec java ${JAVA_OPTS} -noverify -XX:+AlwaysPreTouch -Djava.security.egd=file:/dev/./urandom -cp /app/resources/:/app/classes/:/app/libs/* "com.alibaba.csp.sentinel.dashboard.SentinelApplication" "$@"

0 comments on commit 90c165b

Please sign in to comment.