version: "3.8"
services:
incloud-base-gateway:
build:
context: ./
dockerfile: ./incloud-base/incloud-base-gateway/Dockerfile
args:
INCLOUD_NACOS_SERVICE_HOST: ${INCLOUD_NACOS_SERVICE_HOST}
INCLOUD_MYSQL_SERVICE_HOST: ${INCLOUD_MYSQL_SERVICE_HOST}
INCLOUD_REDIS_SERVICE_HOST: ${INCLOUD_REDIS_SERVICE_HOST}
INCLOUD_NACOS_SERVICE_PORT: ${INCLOUD_NACOS_SERVICE_PORT}
INCLOUD_NACOS_NAMESPACE: ${INCLOUD_NACOS_NAMESPACE}
INCLOUD_DB_USER: ${INCLOUD_DB_USER}
INCLOUD_DB_PWD: ${INCLOUD_DB_PWD}
INCLOUD_MYSQL_SERVICE_PORT: ${INCLOUD_MYSQL_SERVICE_PORT}
INCLOUD_DB_SCHEMA: ${INCLOUD_DB_SCHEMA}
INCLOUD_DB_BACKET: ${INCLOUD_DB_BACKET}
INCLOUD_REDIS_SERVICE_PORT: ${INCLOUD_REDIS_SERVICE_PORT}
INCLOUD_REDIS_PWD: ${INCLOUD_REDIS_PWD}
INCLOUD_RABBITMQ_TRANSPORT_SERVICE_HOST: ${INCLOUD_RABBITMQ_TRANSPORT_SERVICE_HOST}
INCLOUD_RABBITMQ_TRANSPORT_SERVICE_PORT: ${INCLOUD_RABBITMQ_TRANSPORT_SERVICE_PORT}
INCLOUD_RABBITMQ_USERNAME: ${INCLOUD_RABBITMQ_USERNAME}
INCLOUD_RABBITMQ_PASSWORD: ${INCLOUD_RABBITMQ_PASSWORD}
INCLOUD_RABBITMQ_VIRTUAL: ${INCLOUD_RABBITMQ_VIRTUAL}
INCLOUD_MINIO_SERVICE_HOST: ${INCLOUD_MINIO_SERVICE_HOST}
INCLOUD_MINIO_SERVICE_PORT: ${INCLOUD_MINIO_SERVICE_PORT}
INCLOUD_MINIO_ACCESSKEY: ${INCLOUD_MINIO_ACCESSKEY}
INCLOUD_MINIO_SECRETKEY: ${INCLOUD_MINIO_SECRETKEY}
INCLOUD_MINIO_BACKETNAME: ${INCLOUD_MINIO_BACKETNAME}
INCLOUD_ROCKETMQ_SERVICE_HOST: ${INCLOUD_ROCKETMQ_SERVICE_HOST}
INCLOUD_ROCKETMQ_SERVICE_PORT: ${INCLOUD_ROCKETMQ_SERVICE_PORT}
INCLOUD_SENTINEL_SERVICE_HOST: ${INCLOUD_SENTINEL_SERVICE_HOST}
INCLOUD_SENTINEL_SERVICE_PORT: ${INCLOUD_SENTINEL_SERVICE_PORT}
INCLOUD_ES_SERVICE_HOST: ${INCLOUD_ES_SERVICE_HOST}
INCLOUD_ES_SERVICE_PORT: ${INCLOUD_ES_SERVICE_PORT}
INCLOUD_BASE_GATEWAY_SERVICE_HOST: ${INCLOUD_BASE_GATEWAY_SERVICE_HOST}
INCLOUD_BASE_GATEWAY_SERVICE_PORT: ${INCLOUD_BASE_GATEWAY_SERVICE_PORT}
restart: always
container_name: incloud-base-gateway
#networks:
# - netwisd
image: incloud-base-gateway
volumes:
- /opt/app/logs/incloud-base-gateway/:/root/incloud/logs
ports:
- 8000:8000
- 8719:8719
FROM amazoncorretto:17
#作者
MAINTAINER zouliming@netwisd.com
#工作空间
WORKDIR /root/incloud
#相当于声明变量,到时候来源于docker-compose.
ARG INCLOUD_NACOS_SERVICE_HOST
ARG INCLOUD_MYSQL_SERVICE_HOST
ARG INCLOUD_REDIS_SERVICE_HOST
ARG INCLOUD_NACOS_SERVICE_PORT
ARG INCLOUD_NACOS_NAMESPACE
ARG INCLOUD_DB_USER
ARG INCLOUD_DB_PWD
ARG INCLOUD_MYSQL_SERVICE_PORT
ARG INCLOUD_DB_SCHEMA
ARG INCLOUD_DB_BACKET
ARG INCLOUD_REDIS_SERVICE_PORT
ARG INCLOUD_REDIS_PWD
ARG INCLOUD_RABBITMQ_TRANSPORT_SERVICE_HOST
ARG INCLOUD_RABBITMQ_TRANSPORT_SERVICE_PORT
ARG INCLOUD_RABBITMQ_USERNAME
ARG INCLOUD_RABBITMQ_PASSWORD
ARG INCLOUD_RABBITMQ_VIRTUAL
ARG INCLOUD_MINIO_SERVICE_HOST
ARG INCLOUD_MINIO_SERVICE_PORT
ARG INCLOUD_MINIO_ACCESSKEY
ARG INCLOUD_MINIO_SECRETKEY
ARG INCLOUD_MINIO_BACKETNAME
ARG INCLOUD_ROCKETMQ_SERVICE_HOST
ARG INCLOUD_ROCKETMQ_SERVICE_PORT
ARG INCLOUD_SENTINEL_SERVICE_HOST
ARG INCLOUD_SENTINEL_SERVICE_PORT
ARG INCLOUD_ES_SERVICE_HOST
ARG INCLOUD_ES_SERVICE_PORT
ARG INCLOUD_BASE_GATEWAY_SERVICE_HOST
ARG INCLOUD_BASE_GATEWAY_SERVICE_PORT
#host相关变更赋值
ENV INCLOUD_NACOS_SERVICE_HOST=$INCLOUD_NACOS_SERVICE_HOST INCLOUD_MYSQL_SERVICE_HOST=$INCLOUD_MYSQL_SERVICE_HOST INCLOUD_REDIS_SERVICE_HOST=$INCLOUD_REDIS_SERVICE_HOST INCLOUD_RABBITMQ_TRANSPORT_SERVICE_HOST=$INCLOUD_RABBITMQ_TRANSPORT_SERVICE_HOST INCLOUD_MINIO_SERVICE_HOST=$INCLOUD_MINIO_SERVICE_HOST INCLOUD_ROCKETMQ_SERVICE_HOST=$INCLOUD_ROCKETMQ_SERVICE_HOST INCLOUD_SENTINEL_SERVICE_HOST=$INCLOUD_SENTINEL_SERVICE_HOST INCLOUD_ES_SERVICE_HOST=$INCLOUD_ES_SERVICE_HOST INCLOUD_BASE_GATEWAY_SERVICE_HOST=$INCLOUD_BASE_GATEWAY_SERVICE_HOST
#相关参数变量赋值
ENV INCLOUD_NACOS_SERVICE_PORT=$INCLOUD_NACOS_SERVICE_PORT INCLOUD_NACOS_NAMESPACE=$INCLOUD_NACOS_NAMESPACE INCLOUD_DB_USER=$INCLOUD_DB_USER INCLOUD_DB_PWD=$INCLOUD_DB_PWD INCLOUD_MYSQL_SERVICE_PORT=$INCLOUD_MYSQL_SERVICE_PORT INCLOUD_DB_SCHEMA=$INCLOUD_DB_SCHEMA INCLOUD_DB_BACKET=$INCLOUD_DB_BACKET INCLOUD_REDIS_SERVICE_PORT=$INCLOUD_REDIS_SERVICE_PORT INCLOUD_REDIS_PWD=$INCLOUD_REDIS_PWD INCLOUD_RABBITMQ_TRANSPORT_SERVICE_PORT=$INCLOUD_RABBITMQ_TRANSPORT_SERVICE_PORT INCLOUD_RABBITMQ_USERNAME=$INCLOUD_RABBITMQ_USERNAME INCLOUD_RABBITMQ_PASSWORD=$INCLOUD_RABBITMQ_PASSWORD INCLOUD_RABBITMQ_VIRTUAL=$INCLOUD_RABBITMQ_VIRTUAL INCLOUD_MINIO_SERVICE_PORT=$INCLOUD_MINIO_SERVICE_PORT INCLOUD_MINIO_ACCESSKEY=$INCLOUD_MINIO_ACCESSKEY INCLOUD_MINIO_SECRETKEY=$INCLOUD_MINIO_SECRETKEY INCLOUD_MINIO_BACKETNAME=$INCLOUD_MINIO_BACKETNAME INCLOUD_ROCKETMQ_SERVICE_PORT=$INCLOUD_ROCKETMQ_SERVICE_PORT INCLOUD_SENTINEL_SERVICE_PORT=$INCLOUD_SENTINEL_SERVICE_PORT INCLOUD_ES_SERVICE_PORT=$INCLOUD_ES_SERVICE_PORT INCLOUD_BASE_GATEWAY_SERVICE_HOST=$INCLOUD_BASE_GATEWAY_SERVICE_HOST INCLOUD_BASE_GATEWAY_SERVICE_PORT=$INCLOUD_BASE_GATEWAY_SERVICE_PORT
#时区同步
RUN /bin/cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime && echo 'Asia/Shanghai' >/etc/timezone
#对外映射的端口
EXPOSE 8000
ADD ./incloud-base/incloud-base-gateway/target/incloud-base-gateway.jar ./
CMD java -Xms256m -Xmx1024m -jar incloud-base-gateway.jar
# ---------- rebuild.sh ----------
#!/bin/sh
# zouliming@netwisd.com
# 总服务的重启
echo 'restarting...'
./stop.sh
./start.sh
# ---------- start.sh ----------
#!/bin/sh
# zouliming@netwisd.com
# 所有服务的总的启动命令,执行执行这个,会创建新的镜像并启动,
# 而且如果原来有镜像,会导致产生none版本;所以如果启动次命令之前,最好确保没有与之对应的镜像;
# 否则,就先启动start.sh或restart.sh命令
# 如果没有配置环境变量,需要写绝对路径的命令
. /etc/profile
. /root/.bash_profile
echo 'starting...'
docker-compose up -d
echo 'done,enjoy it!'
# ---------- stop.sh ----------
#!/bin/sh
# zouliming@netwisd.com
# 停掉所有服务,并删除容器,还有与之对应的镜像;
# 如果只是停止容器,直接使用docker-compse命令
# 如果没有配置环境变量,需要写绝对路径的命令
. /etc/profile
. /root/.bash_profile
echo 'stop service and rm them...'
docker-compose rm -fsv
echo '-----rmi image-----'
docker rmi incloud-base-gateway
docker rmi incloud-base-log
docker rmi incloud-base-main
docker rmi incloud-base-wf
echo 'Stop to complete!'
# ---------- rebuild.sh ----------
#!/bin/sh
# zouliming@netwisd.com
# gateway的重启
echo 'restarting...'
./stop.sh
./start.sh
# ---------- start.sh ----------
#!/bin/sh
# zouliming@netwisd.com
# gateway服务的启动命令,执行执行这个,会创建新的镜像并启动,
# 而且如果原来有镜像,会导致产生none版本;所以如果启动次命令之前,最好确保没有与之对应的镜像;
# 否则,就先启动start.sh或restart.sh命令
# 如果没有配置环境变量,需要写绝对路径的命令
. /etc/profile
. ~/.bash_profile
echo 'starting...'
docker-compose up -d incloud-base-gateway
echo 'done,enjoy it!'
# ---------- stop.sh ----------
#!/bin/sh
# zouliming@netwisd.com
# 停掉gateway服务,并删除容器,还有与之对应的镜像;
# 如果只是停止容器,直接使用docker-compse命令
# 如果没有配置环境变量,需要写绝对路径的命令
. /etc/profile
. ~/.bash_profile
echo 'stop service and rm it...'
docker-compose rm -fsv incloud-base-gateway
echo '-----rmi image-----'
docker rmi incloud-base-gateway
echo 'Stop to complete!'