1 Star 0 Fork 13

沐雨酃凡/MapleStory-176-Server-Docker

加入 Gitee
与超过 1400万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
Dockerfile 3.35 KB
一键复制 编辑 原始数据 按行查看 历史
Cloud 提交于 2022-02-16 21:41 +08:00 . add code
############## 下载git项目 #####################
FROM bitnami/git:2.34.0 as git-download
MAINTAINER biebbwa@163.com
ARG GITEE_HOME=https://gitee.com/xiaoyun461/swordie.git
WORKDIR /home
RUN git clone $GITEE_HOME
############## MySQL 数据库 #####################
FROM mysql:5.6 as mysql
RUN chmod +x /usr/local/bin/docker-entrypoint.sh
COPY mysql/init/init.sql /docker-entrypoint-initdb.d/
COPY --from=git-download /home/swordie/sql/ /opt/sql/
RUN chown -R mysql:mysql /docker-entrypoint-initdb.d/
RUN chown -R mysql:mysql /opt/sql/
############## server-init 服务 #####################
FROM maven:3.8.4-openjdk-17 as server-init
ENV TZ=Asia/Shanghai
COPY --from=git-download /home/swordie /app
COPY config/settings.xml /usr/share/maven/conf/settings.xml
## 修复log4j bug log4j1.* API 桥接 log4j2.*
COPY fixbug/pom.xml /app/pom.xml
COPY fixbug/log4j2.xml /app/src/main/java/log4j2.xml
RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone \
&& cd /app \
&& rm -f /app/src/main/java/log4j.properties \
&& rm -f /app/bin/classes/log4j.properties \
&& cd /app/src/main/java/net \
&& sed -i "s#org.apache.log4j.Logger#org.apache.logging.log4j.Logger#g" `grep -rl "org.apache.log4j.Logger" ./` \
&& sed -i "s#org.apache.log4j.LogManager#org.apache.logging.log4j.LogManager#g" `grep -rl "org.apache.log4j.LogManager" ./` \
&& sed -i "s#Logger.getLogger(#org.apache.logging.log4j.LogManager.getLogger(#g" `grep -rl "Logger.getLogger(" ./` \
&& cd /app \
&& mvn package -T 1C -DskipTests -Dmaven.compile.fork=true
############## server-base 服务 #####################
FROM server-init as server-base
ARG DB_HOST
ARG DB_PORT
ARG DB_USERNAME
ARG DB_PASSWORD
ARG DB_GAME_NAME
COPY config/hibernate.cfg.xml /app/src/main/java/hibernate.cfg.xml
## 修改 加载 Handler 方式
COPY fixbug/ChannelHandler.java /app/src/main/java/net/swordie/ms/connection/netty/ChannelHandler.java
RUN cd /app \
&& sed -i "s#DB_HOST#${DB_HOST}#g" "/app/src/main/java/hibernate.cfg.xml" \
&& sed -i "s#DB_PORT#${DB_PORT}#g" "/app/src/main/java/hibernate.cfg.xml" \
&& sed -i "s#DB_USERNAME#${DB_USERNAME}#g" "/app/src/main/java/hibernate.cfg.xml" \
&& sed -i "s#DB_PASSWORD#${DB_PASSWORD}#g" "/app/src/main/java/hibernate.cfg.xml" \
&& sed -i "s#DB_GAME_NAME#${DB_GAME_NAME}#g" "/app/src/main/java/hibernate.cfg.xml" \
&& mvn clean package -T 1C -DskipTests -Dmaven.compile.fork=true
############## server #####################
FROM openjdk:17.0-jdk-slim as server-build
ARG DB_HOST
ARG DB_PORT
ENV DB_HOST=${DB_HOST}
ENV DB_PORT=${DB_PORT}
ENV JAR_NAME=maplestory-1.77.3-jar-with-dependencies.jar
ENV TZ=Asia/Shanghai
COPY --from=server-base /app/bin/${JAR_NAME} /app/
COPY --from=server-base /app/resources /app/resources/
COPY --from=server-base /app/scripts /app/scripts/
COPY wait-for-it.sh /usr/local/bin
RUN chmod +x /usr/local/bin/wait-for-it.sh \
&& ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone
WORKDIR /app
EXPOSE 8483 8484
ENTRYPOINT wait-for-it.sh ${DB_HOST}:${DB_PORT} -s -t 0 -- java -jar ${JAVA_OPTS} ${JAR_NAME} net.swordie.ms.Server
############## server 服务 基于 dat #####################
FROM server-build as server-dat
ADD dat.tar.gz /app
############## server 服务 基于WZ #####################
FROM server-build as server-wz
ARG WZ_PATH
ADD ${WZ_PATH} /app
Loading...
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
1
https://gitee.com/mylynfan/maple-story-176-server-docker.git
git@gitee.com:mylynfan/maple-story-176-server-docker.git
mylynfan
maple-story-176-server-docker
MapleStory-176-Server-Docker
master

搜索帮助