FROM maven:3.9-eclipse-temurin-8


RUN if [ -d /etc/apt ]; then \
      sed -i 's/archive.ubuntu.com/mirrors.aliyun.com/g' /etc/apt/sources.list /etc/apt/sources.list.d/*.list 2>/dev/null || true; \
      sed -i 's/security.ubuntu.com/mirrors.aliyun.com/g' /etc/apt/sources.list /etc/apt/sources.list.d/*.list 2>/dev/null || true; \
      sed -i 's/deb.debian.org/mirrors.aliyun.com/g' /etc/apt/sources.list /etc/apt/sources.list.d/*.list 2>/dev/null || true; \
      sed -i 's/security.debian.org/mirrors.aliyun.com/g' /etc/apt/sources.list /etc/apt/sources.list.d/*.list 2>/dev/null || true; \
      if [ -d /etc/apt/sources.list.d ]; then \
        sed -i 's/archive.ubuntu.com/mirrors.aliyun.com/g' /etc/apt/sources.list.d/*.sources 2>/dev/null || true; \
        sed -i 's/security.ubuntu.com/mirrors.aliyun.com/g' /etc/apt/sources.list.d/*.sources 2>/dev/null || true; \
        sed -i 's/deb.debian.org/mirrors.aliyun.com/g' /etc/apt/sources.list.d/*.sources 2>/dev/null || true; \
        sed -i 's/security.debian.org/mirrors.aliyun.com/g' /etc/apt/sources.list.d/*.sources 2>/dev/null || true; \
      fi; \
    fi

# --- java mirrors ---

RUN mkdir -p /root/.m2 && \
    echo '<settings xmlns="http://maven.apache.org/SETTINGS/1.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0 https://maven.apache.org/xsd/settings-1.0.0.xsd"> \
    <mirrors> \
        <mirror><id>aliyunmaven</id><mirrorOf>*</mirrorOf><name>Aliyun Public</name><url>https://maven.aliyun.com/repository/public</url></mirror> \
    </mirrors> \
    </settings>' > /root/.m2/settings.xml
RUN mkdir -p /root/.gradle && cat <<'EOGP' > /root/.gradle/gradle.properties
systemProp.http.nonProxyHosts=localhost|127.0.0.1
systemProp.https.nonProxyHosts=localhost|127.0.0.1
org.gradle.parallel=true
org.gradle.caching=true
org.gradle.vfs.watch=false
org.gradle.jvmargs=-Xmx2g -XX:MaxMetaspaceSize=512m -XX:+HeapDumpOnOutOfMemoryError
EOGP
# --- END JAVA MIRRORS ---


WORKDIR /app

COPY . .

RUN --mount=type=cache,target=/root/.m2/repository \
    mvn clean package -DskipTests -pl yudao-server -am

WORKDIR /app/yudao-server/target

ENV SERVER_PORT=48080
EXPOSE 48080

CMD ["java", "-Xms256m", "-Xmx512m", "-Djava.security.egd=file:/dev/./urandom", "-jar", "yudao-server.jar"]
