前端項目docker容器化佈署如何配置後臺服務器地址

前言

Docker是什麼東西以及爲什麼使用docker我就不贅述了,最近遇到一個項目,需求是這樣的:前後端服務均佈署在docker中,但是由於每次啓動後端服務時它的IP及端口號是動態變化的,所以前端每次都需要在後端服務啓動後手動配置後臺服務地址,那麼有沒有自動配置的方法呢,這就是這篇文章所要解答的問題。

問題

比如,我有一個前端項目,它的配置文件config.js是這樣的

window.GLOBAL={SERVICE_URL:"http://192.250.23.233:8088"}

佈署在docker以後192.250.23.233和8088會變成其它的,變成什麼再容器啓動前誰也不知道。
那我怎麼在容器啓動後自動替換192.250.23.233和8088呢。

解決方案

在docker啓動時通過-e參數將ip和port寫入環境變量,容器啓動後通過shell主動將ip和port對應的環境變量寫入config.js

示例

//Dockerfile
FROM hub.c.163.com/public/centos:7.2.1511
COPY jdk8.rpm jdk8.rpm
RUN rpm -ivh jdk8.rpm
RUN yum clean all
RUN mkdir /tomcat
COPY ./tomcat /tomcat
COPY ./sdc_start.sh /home/sdc_start.sh
RUN chmod 777 /tomcat/bin/* 
CMD bash /home/sdc_start.sh
//sdc_start.sh
#!/bin/bash
# description: sdc_start ....
#啓動服務器
echo "服務啓動中..."
echo window.GLOBAL="{SERVICE_URL:\"http://$IP:$PORT\"}"> /tomcat/webapps/dist/static/conf/config.js
/tomcat/bin/catalina.sh run

然後啓動容器
docker run -d -e IP="192.168.111.112" -e PORT="8999" containerID
config.js中的內容就會變成

window.GLOBAL={SERVICE_URL:"http://192.168.111.112:8999"}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章