背景
在docker容器中直接修改react的ts代码后,执行docker commit提交修改后的镜像,重新docker pull拉取镜像并启动容器。
//补充此处加载代码
load() {
this.loadJobs().then(() => {
this.loadAWS();
try {
if (localStorage["password"]) {
this.login(localStorage["password"]);
}
} catch (e) {
console.log('Exception reading secret key from localstorage:', e);
}
}
现象
发现修改代码后未生效,未能从localStroage中获取保存的密码,也没有打印报错。
解决过程
1、检查dockerfile文件
检查dockerfile中的entrypoint以及cmd,发现其中未有执行npm run 相关的启动前端项目的命令(npm run相关命令在dockerfile中非entrypoint中,即在之前docker build .过程中会运行npm run相关命令)。由于我的场景是直接在容器中修改代码然后commit容器的修改内容,中间未有docker build过程,也就是缺少npm run build的过程,故前端代码未生效。
RUN \
cd ${APP_DIR} && \
npm install && \
npm run build #此处编译启动react项目
ENTRYPOINT [ "node xxx.ts" ] #此处为entrypoint
2、docker容器中进行手动更新部署
在docker容器中手动执行npm install ,npm run build即可解决代码未生效问题。
本文介绍在Docker容器中直接修改React TypeScript代码后,如何通过手动执行npm命令来解决代码更改未能生效的问题。
561

被折叠的 条评论
为什么被折叠?



