前言
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
示例
//DockerfileFROM hub./public/centos:7.2.1511COPY jdk8.rpm jdk8.rpmRUN rpm -ivh jdk8.rpmRUN yum clean allRUN mkdir /tomcatCOPY ./tomcat /tomcatCOPY ./sdc_start.sh /home/sdc_start.shRUN 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"}
如果觉得《前端项目docker容器化布署如何配置后台服务器地址》对你有帮助,请点赞、收藏,并留下你的观点哦!