docker run 指定 ip- spring boot

1. Dockerfile

FROM ubuntu
RUN mkdir opt/fsd
RUN apt-get update
RUN apt install vim --assume-yes
ADD jdk-8u231-linux-x64.tar.gz opt/fsd
ENV JAVA_HOME=/opt/fsd/jdk1.8.0_231
ENV PATH=$JAVA_HOME/bin:$PATH
ENV CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
COPY sfgeurekasvr-0.0.1-SNAPSHOT.jar /opt/fsd
EXPOSE 7761
ENTRYPOINT java -jar /opt/fsd/sfgeurekasvr-0.0.1-SNAPSHOT.jar --eureka.instance.hostname=${EUREKAHOST}

2. docker build -t bb .

3. docker run -p 7761:7761 -e "EUREKAHOST=192.168.3.68"  -it bb  /bin/bash

4. codes for test

@EnableEurekaServer
@SpringBootApplication
@RestController
public class EurekaMainApplication {

    @Value("${eureka.instance.hostname}")
    String eurekaIp;

    @Value("$server.port")
    String port;

    public static void main(String[] args) {
        SpringApplication.run(EurekaMainApplication.class, args);
    }

    @RequestMapping(value = { "/ip" }, method = RequestMethod.GET)
    public String findIp() {
        System.out.println("--------------------------ip:" + eurekaIp + "; port:" + port);
        return eurekaIp;
    }
}

 

附:也可以在build階段指定參數

docker build --build-arg EUREKAHOST=192.168.3.68 -t aa .

FROM ubuntu
RUN mkdir opt/fsd
ARG EUREKAHOST
RUN echo "Oh dang look at that ${EUREKAHOST}"

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章