Skip to content

Commit

Permalink
解决副本启动子进程的问题、升级jib
Browse files Browse the repository at this point in the history
  • Loading branch information
cgw committed Sep 25, 2023
1 parent 1e372c2 commit 4843a37
Show file tree
Hide file tree
Showing 11 changed files with 81 additions and 30 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -468,6 +468,11 @@ public static class AppExtendNodejsCreationParam implements Serializable {
*/
private String nodeImage;

/**
* 启动文件
*/
private String startFile;

public String getNodeVersion() {
return nodeVersion;
}
Expand All @@ -484,6 +489,14 @@ public void setNodeImage(String nodeImage) {
this.nodeImage = nodeImage;
}

public String getStartFile() {
return startFile;
}

public void setStartFile(String startFile) {
this.startFile = startFile;
}

}

/**
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

import org.dhorse.api.response.model.App.AppExtend;

public class AppExtendNodeJS extends AppExtend {
public class AppExtendNodejs extends AppExtend {

private static final long serialVersionUID = 1L;

Expand All @@ -15,6 +15,11 @@ public class AppExtendNodeJS extends AppExtend {
* Node镜像
*/
private String nodeImage;

/**
* 启动文件
*/
private String startFile;

public String getNodeVersion() {
return nodeVersion;
Expand All @@ -32,4 +37,12 @@ public void setNodeImage(String nodeImage) {
this.nodeImage = nodeImage;
}

public String getStartFile() {
return startFile;
}

public void setStartFile(String startFile) {
this.startFile = startFile;
}

}
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,7 @@
import org.dhorse.api.response.model.AppExtendJava;
import org.dhorse.api.response.model.AppExtendNext;
import org.dhorse.api.response.model.AppExtendNode;
import org.dhorse.api.response.model.AppExtendNodeJS;
import org.dhorse.api.response.model.AppExtendNodejs;
import org.dhorse.api.response.model.AppExtendNuxt;
import org.dhorse.api.response.model.AppExtendPython;
import org.dhorse.api.response.model.GlobalConfigAgg;
Expand Down Expand Up @@ -442,7 +442,7 @@ private AppParam buildBizParam(AppCreationParam requestParam) {
BeanUtils.copyProperties(requestParam.getExtendNodeParam(), appExtend);
}else if(TechTypeEnum.NODEJS.getCode().equals(requestParam.getTechType())
&& requestParam.getExtendNodejsParam() != null) {
appExtend = new AppExtendNodeJS();
appExtend = new AppExtendNodejs();
BeanUtils.copyProperties(requestParam.getExtendNodejsParam(), appExtend);
}else if(TechTypeEnum.HTML.getCode().equals(requestParam.getTechType())
&& requestParam.getExtendHtmlParam() != null) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -42,7 +42,7 @@
import org.dhorse.api.response.model.AppExtendGo;
import org.dhorse.api.response.model.AppExtendJava;
import org.dhorse.api.response.model.AppExtendNode;
import org.dhorse.api.response.model.AppExtendNodeJS;
import org.dhorse.api.response.model.AppExtendNodejs;
import org.dhorse.api.response.model.AppExtendNuxt;
import org.dhorse.api.response.model.AppExtendPython;
import org.dhorse.api.response.model.DeploymentDetail;
Expand Down Expand Up @@ -272,8 +272,6 @@ private void deployNotify(DeploymentContext context, DeploymentStatusEnum status
message.setSubmitter(context.getSubmitter());
message.setApprover(context.getApprover());
message.setStatus(status.getCode());
//todo
//message.setTagName(context.get);
message.setVerionName(context.getVersionName());

EventResponse<DeploymentMessage> response = new EventResponse<>();
Expand Down Expand Up @@ -803,7 +801,7 @@ private void buildNodejsImage(DeploymentContext context) {
return;
}
File targetFile = new File(context.getLocalPathOfBranch());
AppExtendNodeJS appExtend = context.getApp().getAppExtend();
AppExtendNodejs appExtend = context.getApp().getAppExtend();
String baseImage = Constants.NODE_IMAGE_BASE_URL + appExtend.getNodeVersion().substring(1);
if(!StringUtils.isBlank(appExtend.getNodeImage())){
baseImage = appExtend.getNodeImage();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@
import org.dhorse.api.response.model.AppExtendJava;
import org.dhorse.api.response.model.AppExtendNext;
import org.dhorse.api.response.model.AppExtendNode;
import org.dhorse.api.response.model.AppExtendNodeJS;
import org.dhorse.api.response.model.AppExtendNodejs;
import org.dhorse.api.response.model.AppExtendNuxt;
import org.dhorse.api.response.model.AppExtendPython;
import org.dhorse.infrastructure.param.AppMemberParam;
Expand Down Expand Up @@ -149,7 +149,7 @@ private AppExtend queryAppExtend(AppPO appPO) {
return JsonUtils.parseToObject(appPO.getExt(), AppExtendNode.class);
}
if (TechTypeEnum.NODEJS.getCode().equals(appPO.getTechType())) {
return JsonUtils.parseToObject(appPO.getExt(), AppExtendNodeJS.class);
return JsonUtils.parseToObject(appPO.getExt(), AppExtendNodejs.class);
}
if (TechTypeEnum.HTML.getCode().equals(appPO.getTechType())) {
return JsonUtils.parseToObject(appPO.getExt(), AppExtendHtml.class);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -403,7 +403,10 @@ public static List<JsonPatch> updatePrometheus(String kind, Map<String, String>
return paths;
}

if(ep != null && kind.equals(ep.getKind()) && (existedAnnotations == null
if(ep != null && kind.equals(ep.getKind()) && (existedAnnotations == null
|| StringUtils.isBlank(ep.getScrape())
|| StringUtils.isBlank(ep.getPort())
|| StringUtils.isBlank(ep.getPath())
|| !ep.getScrape().equals(existedAnnotations.get("prometheus.io/scrape"))
|| !ep.getPort().equals(existedAnnotations.get("prometheus.io/port"))
|| !ep.getPath().equals(existedAnnotations.get("prometheus.io/path")))) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -40,6 +40,7 @@
import org.dhorse.api.response.model.AppExtendDjango;
import org.dhorse.api.response.model.AppExtendFlask;
import org.dhorse.api.response.model.AppExtendJava;
import org.dhorse.api.response.model.AppExtendNodejs;
import org.dhorse.api.response.model.AppExtendNuxt;
import org.dhorse.api.response.model.AppExtendPython;
import org.dhorse.api.response.model.ClusterNamespace;
Expand Down Expand Up @@ -1004,15 +1005,19 @@ private void containerOfNodejs(DeploymentContext context, V1Container container)
return;
}
String appHome = Constants.USR_LOCAL_HOME + context.getApp().getAppName();
String startFile = ((AppExtendNodejs)context.getApp().getAppExtend()).getStartFile();
if(StringUtils.isBlank(startFile)) {
startFile = "index.js";
}
String commands = new StringBuilder()
.append("export NODE_ENV=" + context.getAppEnv().getTag())
.append(" && export HOST=0.0.0.0")
.append(" && export PORT=" + context.getAppEnv().getServicePort())
.append(" && cd ").append(appHome)
.append(" && npm install --registry=https://registry.npmmirror.com")
.append(" && npm start")
.append(" && exec node " + startFile)
.toString();
container.setCommand(Arrays.asList("/bin/sh", "-c", commands));
container.setCommand(Arrays.asList("sh", "-c", commands));
container.setImage(context.getFullNameOfImage());
}

Expand Down Expand Up @@ -1040,8 +1045,8 @@ private void containerOfNuxt(DeploymentContext context, V1Container container) {
}
commands.append(" && "+ commandType +" install" + registryMirror)
.append(" && "+ commandType +" run build")
.append(" && "+ commandType +" start");
container.setCommand(Arrays.asList("/bin/sh", "-c", commands.toString()));
.append(" && exec "+ commandType +" start");
container.setCommand(Arrays.asList("sh", "-c", commands.toString()));
container.setImage(context.getFullNameOfImage());
}

Expand Down Expand Up @@ -1087,7 +1092,7 @@ private static void containerOfGo(DeploymentContext context, V1Container contain
String commands = new StringBuilder()
.append("export GO_ENV=" + context.getAppEnv().getTag())
.append(" && chmod +x "+ executableFile)
.append(" && " + executableFile)
.append(" && exec " + executableFile)
.toString();
container.setCommand(Arrays.asList("sh", "-c", commands));
container.setImage(context.getFullNameOfImage());
Expand All @@ -1106,7 +1111,7 @@ private static void containerOfPython(DeploymentContext context, V1Container con
.append("export PYTHON_ENV=" + context.getAppEnv().getTag())
.append(" && cd " + appHome)
.append(" && pip install -r requirements.txt")
.append(" && python " + startFile)
.append(" && exec python " + startFile)
.toString();
container.setCommand(Arrays.asList("sh", "-c", commands));
container.setImage(context.getFullNameOfImage());
Expand All @@ -1126,7 +1131,7 @@ private static void containerOfFlask(DeploymentContext context, V1Container cont
.append(" && export FLASK_ENV=" + context.getAppEnv().getTag())
.append(" && cd " + appHome)
.append(" && pip install -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple/ --use-deprecated=legacy-resolver")
.append(" && flask run --host 0.0.0.0 --port " + context.getAppEnv().getServicePort())
.append(" && exec flask run --host 0.0.0.0 --port " + context.getAppEnv().getServicePort())
.toString();
container.setCommand(Arrays.asList("sh", "-c", commands));
container.setImage(context.getFullNameOfImage());
Expand All @@ -1145,7 +1150,7 @@ private static void containerOfDjango(DeploymentContext context, V1Container con
.append("export DJANGO_ENV=" + context.getAppEnv().getTag())
.append(" && cd " + appHome)
.append(" && pip install -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple/ --use-deprecated=legacy-resolver")
.append(" && python ")
.append(" && exec python ")
.append(startFile)
.append(" runserver")
.append(" 0.0.0.0:" + context.getAppEnv().getServicePort())
Expand Down Expand Up @@ -1274,8 +1279,8 @@ private V1LifecycleHandler lifecycleHandler(EnvLifecycle.Item item, DeploymentCo
*/
private void commandsOfJar(V1Container container, DeploymentContext context){
StringBuilder commands = new StringBuilder();
commands.append("chmod +x $JAVA_HOME/bin/java &&");
commands.append(" $JAVA_HOME/bin/java");
commands.append("chmod +x $JAVA_HOME/bin/java");
commands.append(" && exec $JAVA_HOME/bin/java");
//DHorse定义的Jvm参数
List<String> jvmArgsOfDHorse = jvmArgsOfDHorse(context);
for(String arg : jvmArgsOfDHorse) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,7 @@
import org.dhorse.api.response.model.AppExtendDjango;
import org.dhorse.api.response.model.AppExtendFlask;
import org.dhorse.api.response.model.AppExtendJava;
import org.dhorse.api.response.model.AppExtendNodejs;
import org.dhorse.api.response.model.AppExtendNuxt;
import org.dhorse.api.response.model.AppExtendPython;
import org.dhorse.api.response.model.EnvHealth;
Expand Down Expand Up @@ -490,15 +491,19 @@ private static void containerOfNodejs(DeploymentContext context, Container conta
return;
}
String appHome = Constants.USR_LOCAL_HOME + context.getApp().getAppName();
String startFile = ((AppExtendNodejs)context.getApp().getAppExtend()).getStartFile();
if(StringUtils.isBlank(startFile)) {
startFile = "index.js";
}
String commands = new StringBuilder()
.append("export NODE_ENV=" + context.getAppEnv().getTag())
.append(" && export HOST=0.0.0.0")
.append(" && export PORT=" + context.getAppEnv().getServicePort())
.append(" && cd ").append(appHome)
.append(" && npm install --registry=https://registry.npmmirror.com")
.append(" && npm start")
.append(" && exec node " + startFile)
.toString();
container.setCommand(Arrays.asList("/bin/sh", "-c", commands));
container.setCommand(Arrays.asList("sh", "-c", commands));
container.setImage(context.getFullNameOfImage());
}

Expand Down Expand Up @@ -526,8 +531,8 @@ private static void containerOfNuxt(DeploymentContext context, Container contain
}
commands.append(" && "+ commandType +" install" + registryMirror)
.append(" && "+ commandType +" run build")
.append(" && "+ commandType +" start");
container.setCommand(Arrays.asList("/bin/sh", "-c", commands.toString()));
.append(" && exec "+ commandType +" start");
container.setCommand(Arrays.asList("sh", "-c", commands.toString()));
container.setImage(context.getFullNameOfImage());
}

Expand Down Expand Up @@ -573,7 +578,7 @@ private static void containerOfGo(DeploymentContext context, Container container
String commands = new StringBuilder()
.append("export GO_ENV=" + context.getAppEnv().getTag())
.append(" && chmod +x "+ executableFile)
.append(" && " + executableFile)
.append(" && exec " + executableFile)
.toString();
container.setCommand(Arrays.asList("sh", "-c", commands));
container.setImage(context.getFullNameOfImage());
Expand All @@ -592,7 +597,7 @@ private static void containerOfPython(DeploymentContext context, Container conta
.append("export PYTHON_ENV=" + context.getAppEnv().getTag())
.append(" && cd " + appHome)
.append(" && pip install -r requirements.txt")
.append(" && python " + startFile)
.append(" && exec python " + startFile)
.toString();
container.setCommand(Arrays.asList("sh", "-c", commands));
container.setImage(context.getFullNameOfImage());
Expand All @@ -612,7 +617,7 @@ private static void containerOfFlask(DeploymentContext context, Container contai
.append(" && export FLASK_ENV=" + context.getAppEnv().getTag())
.append(" && cd " + appHome)
.append(" && pip install -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple/ --use-deprecated=legacy-resolver")
.append(" && flask run --host 0.0.0.0 --port " + context.getAppEnv().getServicePort())
.append(" && exec flask run --host 0.0.0.0 --port " + context.getAppEnv().getServicePort())
.toString();
container.setCommand(Arrays.asList("sh", "-c", commands));
container.setImage(context.getFullNameOfImage());
Expand All @@ -631,7 +636,7 @@ private static void containerOfDjango(DeploymentContext context, Container conta
.append("export DJANGO_ENV=" + context.getAppEnv().getTag())
.append(" && cd " + appHome)
.append(" && pip install -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple/ --use-deprecated=legacy-resolver")
.append(" && python ")
.append(" && exec python ")
.append(startFile)
.append(" runserver")
.append(" 0.0.0.0:" + context.getAppEnv().getServicePort())
Expand Down Expand Up @@ -760,8 +765,8 @@ private static LifecycleHandler lifecycleHandler(EnvLifecycle.Item item, Deploym
*/
private static void commandsOfJar(Container container, DeploymentContext context){
StringBuilder commands = new StringBuilder();
commands.append("chmod +x $JAVA_HOME/bin/java &&");
commands.append(" $JAVA_HOME/bin/java");
commands.append("chmod +x $JAVA_HOME/bin/java");
commands.append(" && exec $JAVA_HOME/bin/java");
//DHorse定义的Jvm参数
List<String> jvmArgsOfDHorse = jvmArgsOfDHorse(context);
for(String arg : jvmArgsOfDHorse) {
Expand Down
6 changes: 6 additions & 0 deletions static/page/app/add.html
Original file line number Diff line number Diff line change
Expand Up @@ -236,6 +236,12 @@
<input type="text" name="extendNodejsParam.nodeImage" placeholder="默认使用Node的官方镜像,如:dockerproxy.com/library/node:18.17.1" autocomplete="off" class="layui-input">
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">启动文件</label>
<div class="layui-input-block">
<input type="text" name="extendNodejsParam.startFile" placeholder="默认:index.js" autocomplete="off" class="layui-input">
</div>
</div>
<div class="layui-form-item required">
<div class="layui-input-block">
<button type="button" class="layui-btn layui-btn-primary pre">上一步</button>
Expand Down
2 changes: 2 additions & 0 deletions static/page/app/detail.html
Original file line number Diff line number Diff line change
Expand Up @@ -297,6 +297,8 @@
$("#nodeVersionDiv").show();
$("#nodeImage").text(res.data.appExtend.nodeImage);
$("#nodeImageDiv").show();
$("#startFileDiv").show();
$("#startFile").text(res.data.appExtend.startFile);
//Html
}else if(res.data.techType == 5){
techType = "Html";
Expand Down
6 changes: 6 additions & 0 deletions static/page/app/update.html
Original file line number Diff line number Diff line change
Expand Up @@ -238,6 +238,12 @@
<input type="text" name="extendNodejsParam.nodeImage" placeholder="默认使用Node的官方镜像,如:dockerproxy.com/library/node:18.17.1" autocomplete="off" class="layui-input">
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">启动文件</label>
<div class="layui-input-block">
<input type="text" name="extendNodejsParam.startFile" placeholder="默认:index.js" autocomplete="off" class="layui-input">
</div>
</div>
<div class="layui-form-item required">
<div class="layui-input-block">
<button type="button" class="layui-btn layui-btn-primary pre">上一步</button>
Expand Down

0 comments on commit 4843a37

Please sign in to comment.