前言
因為碰到一個奇怪的問題,需要一直去改golang的config檔,
所以就再想了,能不能像以前的php或html,單純改config,重新整理就能抓到資料。
結果.......
正文
先說結論,直接修改config,然後強制關閉golang的process ,是行不通的。
環境,golang pod,執行程式的方式,
是先 打包成一個檔案,再放到alpine linux上面的pod直接執行。
目標,不重新打包程式修改config
實驗的方法如下:
- 先查詢是不是有golang的程式在執行
ps
-
由於此程式是直接抓同資料夾的config
-
悲劇得來了,修改完appsettings.json後,只要刪除/app/main ,就會直接跳出,pod自動重啟。
kill -s 26
ref.
在 Linux 中使用 kill、killall 與 xkill 等指令強迫關閉程式
最後有幾個方案,golang有
熱更新配置文件
Golang熱加載配置實踐
不動程式的話,目前想到的是,直接重新打包,把config丟進去image裡面。
來源的映像檔,直接改成本來的image,
然後copy 改完的appsetings.json到目的,
這樣程式不用重新編譯,但要重新打包image。
docker build
FROM gcr.io/rproject/source:adminQA-0.0.27
ARG website
ARG location
ARG type
WORKDIR /app
COPY appsettings.json /app/
EXPOSE 80
# 不更改權限會發生權限錯誤
RUN chmod +x /init.sh
RUN ["chmod", "+x", "/init.sh"]
ENTRYPOINT ["sh","-x","/init.sh"]
0 意見:
張貼留言