| 1234567891011121314151617181920212223242526272829303132333435363738 |
- # ============================================
- # Forge Admin 后端服务 Dockerfile
- # ============================================
- # 构建上下文为项目根目录,docker compose 中 context 设为 ..
- FROM eclipse-temurin:17-jdk AS builder
- WORKDIR /build
- COPY forge/ .
- RUN mvn clean package -pl forge-admin -am -DskipTests -Pprod
- FROM eclipse-temurin:17-jre
- WORKDIR /app
- COPY --from=builder /build/forge-admin/target/forge-admin.jar app.jar
- ENV JAVA_OPTS="-Xms256m -Xmx512m"
- ENV SPRING_PROFILES_ACTIVE=prod
- ENV MYSQL_HOST=mysql
- ENV MYSQL_PORT=3306
- ENV MYSQL_DB=forge_admin
- ENV MYSQL_USER=root
- ENV MYSQL_PASSWORD=forge123456
- ENV REDIS_HOST=redis
- ENV REDIS_PORT=6379
- ENV REDIS_PASSWORD=forge123456
- ENV FLOW_CLIENT_URL=http://forge-flow:8081
- EXPOSE 8580
- ENTRYPOINT ["sh", "-c", "java ${JAVA_OPTS} \
- -Dspring.profiles.active=${SPRING_PROFILES_ACTIVE} \
- -Dspring.datasource.dynamic.datasource.master.url=jdbc:mysql://${MYSQL_HOST}:${MYSQL_PORT}/${MYSQL_DB}?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=false&serverTimezone=GMT%2B8&autoReconnect=true&rewriteBatchedStatements=true&allowPublicKeyRetrieval=true&nullCatalogMeansCurrent=true \
- -Dspring.datasource.dynamic.datasource.master.username=${MYSQL_USER} \
- -Dspring.datasource.dynamic.datasource.master.password=${MYSQL_PASSWORD} \
- -Dspring.data.redis.host=${REDIS_HOST} \
- -Dspring.data.redis.port=${REDIS_PORT} \
- -Dspring.data.redis.password=${REDIS_PASSWORD} \
- -Dspring.data.redis.redisson.config=\"singleServerConfig:\\n address: \\\"redis://${REDIS_HOST}:${REDIS_PORT}\\\"\\n database: 0\\n password: ${REDIS_PASSWORD}\\n connectTimeout: 10000\\n timeout: 3000\\n retryAttempts: 3\\n retryInterval: 1500\\n connectionPoolSize: 64\\n connectionMinimumIdleSize: 10\\nthreads: 16\\nnettyThreads: 32\" \
- -Dforge.flow.client.url=${FLOW_CLIENT_URL} \
- -jar app.jar"]
|