记一次生产项目的实施部署
<谨供参考>
架构图

0001机器
docker安装
- 更新yum
yum update - 安装 yum-utils,它提供了 yum-config-manager,可用来管理yum源
sudo yum install -y yum-utils - yum添加软件源
sudo yum-config-manager --add-repo https://mirrors.ustc.edu.cn/docker-ce/linux/centos/docker-ce.repo - 然后刷新缓存
sudo yum makecache fast - 然后安装docker-ce
sudo yum install docker-ce - 启动 docker
sudo systemctl start docker - 验证是否安装成功
sudo docker info - 开机启动
sudo systemctl enable docker
docker-compose安装
1 | 将docker-compose文件上传到 /usr/local/bin/ 文件夹下,修改此文件的权限,增加可执行:chmod +x /usr/local/bin/docker-compose |
nginx
- 添加源
到 cd /etc/yum.repos.d/ 目录下,新建 vim nginx.repo 文件,输入以下信息
1 | [nginx-stable] |
- 安装Nginx
看是否已经添加源成功。如果成功则执行下列命令安装nginx。
yum search nginx安装nginx。
yum install nginx安装完后, 查看
rpm -qa | grep nginx启动nginx:
systemctl start nginx加入开机启动:
systemctl enable nginx查看nginx的状态:
systemctl status nginx
- 修改nginx配置文件内容如下(见附件)
- 重启nginx
- 检测
nginx -t - 平滑重启
nginx -s reload
other
keycloak
- https://github.com/ivangfr/keycloak-clustered.git
- https://www.keycloak.org/2019/05/keycloak-cluster-setup.html
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25services:
keycloak:
image: ivanfranchin/keycloak-clustered:12.0.4
command: "-Djboss.node.name=0001 -Djboss.bind.address.management=0.0.0.0 -Djboss.bind.address.private=0.0.0.0 -Djboss.bind.address=0.0.0.0"
volumes:
- /etc/localtime:/etc/localtime:ro
privileged: true
environment:
- CACHE_OWNERS=2
- DB_VENDOR=xxx
- DB_ADDR=xxx
- DB_PORT=xxx
- DB_DATABASE=xxx
- DB_USER=xxx
- DB_PASSWORD=xxx
- KEYCLOAK_USER=xxx
- KEYCLOAK_PASSWORD=xxx
- JGROUPS_DISCOVERY_EXTERNAL_IP=本地ip
- JGROUPS_DISCOVERY_PROTOCOL=JDBC_PING
- JGROUPS_DISCOVERY_PROPERTIES=datasource_jndi_name=java:jboss/datasources/KeycloakDS
- PROXY_ADDRESS_FORWARDING=true
ports:
- 8081:8080
- 8443:8443
- 7600:7600 - [去掉ssl要求] - keycloak 用私有地址可以不使用ssl登录方式,如果用公网就需要用ssl登录方式。去掉ssl要求方式 - 站内搜索keycloak
rabbitmq
- [Docker搭建RabbitMQ双节点集群] - 搜索: Docker搭建RabbitMQ双节点集群
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22version: '3'
services:
rabbitmq:
image: rabbitmq:3.8.14-management
privileged: true
container_name: rabbitmq01
hostname: rabbitmq01
volumes:
- /opt/rabbitmq/data:/var/lib/rabbitmq
- /opt/rabbitmq/log:/var/log/rabbitmq
- /etc/localtime:/etc/localtime:ro
environment:
RABBITMQ_ERLANG_COOKIE: rabbitmqCookie
extra_hosts:
- "rabbitmq01:xxx"
- "rabbitmq02:xxx"
ports:
- 5671:5671
- 5672:5672
- 15672:15672
- 4369:4369
- 25672:25672
server(服务)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24FROM registry.access.redhat.com/ubi8/ubi-minimal:8.3
ARG JAVA_PACKAGE=java-11-openjdk-headless
ARG RUN_JAVA_VERSION=1.3.8
ENV LANG='en_US.UTF-8' LANGUAGE='en_US:en'
# Install java and the run-java script
# Also set up permissions for user `1001`
RUN microdnf install curl ca-certificates ${JAVA_PACKAGE} \
&& microdnf update \
&& microdnf clean all \
&& mkdir /deployments \
&& chown 1001 /deployments \
&& chmod "g+rwX" /deployments \
&& chown 1001:root /deployments \
&& curl https://repo1.maven.org/maven2/io/fabric8/run-java-sh/${RUN_JAVA_VERSION}/run-java-sh-${RUN_JAVA_VERSION}-sh.sh -o /deployments/run-java.sh \
&& chown 1001 /deployments/run-java.sh \
&& chmod 540 /deployments/run-java.sh \
&& echo "securerandom.source=file:/dev/urandom" >> /etc/alternatives/jre/lib/security/java.security
# Configure the JAVA_OPTIONS, you can add -XshowSettings:vm to also display the heap size.
ENV JAVA_OPTIONS="-Dquarkus.http.host=0.0.0.0 -Djava.util.logging.manager=org.jboss.logmanager.LogManager"
COPY lib/* /deployments/lib/
COPY *-runner.jar /deployments/app.jar
EXPOSE 8088
USER 1001
ENTRYPOINT [ "/deployments/run-java.sh" ]docker-compose
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15version: '3'
services:
xxx:
image: xxx
build:
context: .
container_name: xxx
hostname: xxx
restart: always
volumes:
- /opt/xxx/config:/deployments/config
- /opt/xxx/logs:/deployments/logs
- /etc/localtime:/etc/localtime:ro
ports:
- 8088:8088
nginx
1 | upstream keycloak { |
0002机器
同1
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 小五的个人杂货铺!