docker镜像启动前预处理

1、docker-entrypoint.sh

#!/bin/bash
set -e
if [[ $redis_url ]]; then
        sed -i 's#redis://127.0.0.1:6379#redis://'${redis_url}'#' /data/smartgate/etc/settings.json
fi
if [[ $redis_password ]]; then
        sed -i 's#password=password#password='${redis_password}'#' /data/smartgate/etc/settings.json
fi
if [[ $smartgate_role ]]; then
        sed -i 's#"AppName": "APIGate"#"AppName": "'${smartgate_role}'"#' /data/smartgate/etc/settings.json
fi
exec "$@"

2、Dockerfile

FROM centos:7.9.2009
RUN mkdir /data/
ADD smartgate.tar.gz /data/
COPY docker-entrypoint.sh /bin/         #把docker-entrypoint.sh放到/bin/目录下
RUN chmod +x /bin/docker-entrypoint.sh   
COPY start.sh /data/smartgate/op/start.sh   
WORKDIR /data/smartgate/op
ENTRYPOINT ["docker-entrypoint.sh"]    #启动前预处理
CMD ["./start.sh"]
EXPOSE 80 8080 443

3、启动时增加环境变量

version: "3"
services:
  smartgate-apigate:
    container_name: "apigate"
    hostname: "apigate"
    image: "smartgate"
    restart: always
    environment:   #以下三个环境变量,docker-entrypoint.sh会读取
      redis_url: "192.168.11.210:6379"
      redis_password: "redispassword"
      smartgate_role: "APIGate"
    volumes:
      - /data/log/smartgate:/data/log/smartgate
    ports:
      - '80:80'
      - '8080:8080'
      - '443:443'
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值