docker 运行 芋道微服务

发布于:2025-02-16 ⋅ 阅读:(29) ⋅ 点赞:(0)

创建文件夹 docker-ai
文件夹下放入需要jar包的文件夹docker-compose.yml 文件
在这里插入图片描述
docker-compose.yml 内容:我这里的是ai服务,所以将原先的文件内容做了变更,你们需要用到什么服务就在下面文件中进行更改即可

version: '3'
services:
  yudao-gateway:
    build: 
      context: ./yudao-system
    image: yudao-gateway
    container_name: yudao-gateway
    environment:
      - TZ=Asia/Shanghai # 配置程序默认时区为上海(中国标准时间)
      - JAVA_TOOL_OPTIONS=-javaagent:/data/skywalking/skywalking-agent/skywalking-agent.jar # 配置skywalking
      - SW_AGENT_NAME=yudao-gateway
      - SW_AGENT_TRACE_IGNORE_PATH=Redisson/PING,/actuator/**,/admin/**
      - SW_AGENT_COLLECTOR_BACKEND_SERVICES=[YOUR_SKYWALKING_ADDR] # 请替换 your.skywalking.addr 为你的 skywalking 地址
      - SPRING_PROFILES_ACTIVE=test # 指定程序运行环境
      - SPRING_CLOUD_NACOS_CONFIG_SERVER_ADDR=[YOUR_NACOS_ADDR] # 配置中心地址
      - SPRING_CLOUD_NACOS_CONFIG_NAMESPACE=[YOUR_NAMESPACE] # 命名空间
      - SPRING_CLOUD_NACOS_SERVER_ADDR=[YOUR_NACOS_ADDR]  # 注册中心地址
      - SPRING_CLOUD_NACOS_DISCOVERY_NAMESPACE=[YOUR_NAMESPACE] # 命名空间
    volumes:
      - /docker/yudao-cloud/logs:/root/logs/
      - /data/skywalking/skywalking-agent:/data/skywalking/skywalking-agent
    restart: always
    network_mode: host # 以主机网络环境运行
  yudao-system:
    build: 
      context: ./yudao-system
    image: yudao-module-system-biz
    container_name: yudao-system
    environment:
      - TZ=Asia/Shanghai # 配置程序默认时区为上海(中国标准时间)
      - JAVA_TOOL_OPTIONS=-javaagent:/data/skywalking/skywalking-agent/skywalking-agent.jar # 配置skywalking
      - SW_AGENT_NAME=yudao-gateway
      - SW_AGENT_TRACE_IGNORE_PATH=Redisson/PING,/actuator/**,/admin/**
      - SW_AGENT_COLLECTOR_BACKEND_SERVICES=[YOUR_SKYWALKING_ADDR] # 请替换 your.skywalking.addr 为你的 skywalking 地址
      - SPRING_PROFILES_ACTIVE=test # 指定程序运行环境
      - SPRING_CLOUD_NACOS_CONFIG_SERVER_ADDR=[YOUR_NACOS_ADDR] # 配置中心地址
      - SPRING_CLOUD_NACOS_CONFIG_NAMESPACE=[YOUR_NAMESPACE] # 命名空间
      - SPRING_CLOUD_NACOS_SERVER_ADDR=[YOUR_NACOS_ADDR]  # 注册中心地址
      - SPRING_CLOUD_NACOS_DISCOVERY_NAMESPACE=[YOUR_NAMESPACE] # 命名空间
    volumes:
      - /docker/yudao-cloud/logs:/root/logs/
      - /data/skywalking/skywalking-agent:/data/skywalking/skywalking-agent
    healthcheck:
      test: [ "CMD","curl","-f","http://localhost:48081" ]
      interval: 30s
      timeout: 10s
      retries: 5
      start_period: 60s
    restart: always
    network_mode: host
  yudao-infra:
    build: 
      context: ./yudao-infra
    image: yudao-module-infra-biz
    container_name: yudao-infra
    environment:
      - TZ=Asia/Shanghai # 配置程序默认时区为上海(中国标准时间)
      - JAVA_TOOL_OPTIONS=-javaagent:/data/skywalking/skywalking-agent/skywalking-agent.jar # 配置skywalking
      - SW_AGENT_NAME=yudao-gateway
      - SW_AGENT_TRACE_IGNORE_PATH=Redisson/PING,/actuator/**,/admin/**
      - SW_AGENT_COLLECTOR_BACKEND_SERVICES=[YOUR_SKYWALKING_ADDR] # 请替换 your.skywalking.addr 为你的 skywalking 地址
      - SPRING_PROFILES_ACTIVE=test # 指定程序运行环境
      - SPRING_CLOUD_NACOS_CONFIG_SERVER_ADDR=[YOUR_NACOS_ADDR] # 配置中心地址
      - SPRING_CLOUD_NACOS_CONFIG_NAMESPACE=[YOUR_NAMESPACE] # 命名空间
      - SPRING_CLOUD_NACOS_SERVER_ADDR=[YOUR_NACOS_ADDR]  # 注册中心地址
      - SPRING_CLOUD_NACOS_DISCOVERY_NAMESPACE=[YOUR_NAMESPACE] # 命名空间
    volumes:
      - /docker/yudao-cloud/logs:/root/logs/
      - /data/skywalking/skywalking-agent:/data/skywalking/skywalking-agent
    restart: always
    network_mode: host
    healthcheck:
      test: [ "CMD","curl","-f","http://localhost:48082" ]
      interval: 30s
      timeout: 10s
      retries: 5
      start_period: 60s
    depends_on:
      yudao-system:
        condition: service_healthy
  yudao-ai:
    build: 
      context: ./yudao-ai
    image: yudao-module-ai-biz
    container_name: yudao-ai
    environment:
      - TZ=Asia/Shanghai # 配置程序默认时区为上海(中国标准时间)
      - JAVA_TOOL_OPTIONS=-javaagent:/data/skywalking/skywalking-agent/skywalking-agent.jar # 配置skywalking
      - SW_AGENT_NAME=yudao-gateway
      - SW_AGENT_TRACE_IGNORE_PATH=Redisson/PING,/actuator/**,/admin/**
      - SW_AGENT_COLLECTOR_BACKEND_SERVICES=[YOUR_SKYWALKING_ADDR] # 请替换 your.skywalking.addr 为你的 skywalking 地址
      - SPRING_PROFILES_ACTIVE=test # 指定程序运行环境
      - SPRING_CLOUD_NACOS_CONFIG_SERVER_ADDR=[YOUR_NACOS_ADDR] # 配置中心地址
      - SPRING_CLOUD_NACOS_CONFIG_NAMESPACE=[YOUR_NAMESPACE] # 命名空间
      - SPRING_CLOUD_NACOS_SERVER_ADDR=[YOUR_NACOS_ADDR]  # 注册中心地址
      - SPRING_CLOUD_NACOS_DISCOVERY_NAMESPACE=[YOUR_NAMESPACE] # 命名空间
    volumes:
      - /docker/yudao-cloud/logs:/root/logs/
      - /data/skywalking/skywalking-agent:/data/skywalking/skywalking-agent
    restart: always
    network_mode: host
    depends_on:
      yudao-infra:
        condition: service_healthy

其他jar包文件夹下都放的是对应的jar包Dockerfile 文件
拿 yudao-gateway 文件夹举例:
在这里插入图片描述
Dockerfile 文件需要更改jar包所在位置
在这里插入图片描述
docker-ai 下运行以下命令启动:

docker compose -f docker-compose.yml up -d

在这里插入图片描述

报错 ERROR [yudao-gateway internal] load metadata for docker.io/library/eclipse-temurin:21-jre
在这里插入图片描述
Docker 尝试拉取 eclipse-temurin:21-jre 镜像时遇到了网络相关的问题,使用国内镜像加速器
解决:找到 /etc/docker/daemon.json
更改为:

{

"registry-mirrors": [ "https://docker.m.daocloud.io", "https://noohub.ru", "https://huecker.io", "https://dockerhub.timeweb.cloud", "https://docker.rainbond.cc" ]

}

在这里插入图片描述
在这里插入图片描述
重新启动

docker compose -f docker-compose.yml up -d

yudao-system 服务启动失败报错了
在这里插入图片描述
检查log日志 docker logs yudao-system

[root@iZ8vbj8zzik3i0x7siftkrZ docker-ai]# docker logs yudao-system
Picked up JAVA_TOOL_OPTIONS: -javaagent:/data/skywalking/skywalking-agent/skywalking-agent.jar
Error occurred during initialization of VM
agent library failed Agent_OnLoad: instrument
Error opening zip file or JAR manifest missing : /data/skywalking/skywalking-agent/skywalking-agent.jar
Picked up JAVA_TOOL_OPTIONS: -javaagent:/data/skywalking/skywalking-agent/skywalking-agent.jar
Error occurred during initialization of VM
agent library failed Agent_OnLoad: instrument
Error opening zip file or JAR manifest missing : /data/skywalking/skywalking-agent/skywalking-agent.jar
Picked up JAVA_TOOL_OPTIONS: -javaagent:/data/skywalking/skywalking-agent/skywalking-agent.jar
Error opening zip file or JAR manifest missing : /data/skywalking/skywalking-agent/skywalking-agent.jar
Error occurred during initialization of VM
agent library failed Agent_OnLoad: instrument
Picked up JAVA_TOOL_OPTIONS: -javaagent:/data/skywalking/skywalking-agent/skywalking-agent.jar
Error occurred during initialization of VM
agent library failed Agent_OnLoad: instrument
Error opening zip file or JAR manifest missing : /data/skywalking/skywalking-agent/skywalking-agent.jar
Picked up JAVA_TOOL_OPTIONS: -javaagent:/data/skywalking/skywalking-agent/skywalking-agent.jar
Error opening zip file or JAR manifest missing : /data/skywalking/skywalking-agent/skywalking-agent.jar
Error occurred during initialization of VM
agent library failed Agent_OnLoad: instrument
Picked up JAVA_TOOL_OPTIONS: -javaagent:/data/skywalking/skywalking-agent/skywalking-agent.jar
Error opening zip file or JAR manifest missing : /data/skywalking/skywalking-agent/skywalking-agent.jar
Error occurred during initialization of VM
agent library failed Agent_OnLoad: instrument
Picked up JAVA_TOOL_OPTIONS: -javaagent:/data/skywalking/skywalking-agent/skywalking-agent.jar
Error opening zip file or JAR manifest missing : /data/skywalking/skywalking-agent/skywalking-agent.jar
Error occurred during initialization of VM
agent library failed Agent_OnLoad: instrument
Picked up JAVA_TOOL_OPTIONS: -javaagent:/data/skywalking/skywalking-agent/skywalking-agent.jar
Error opening zip file or JAR manifest missing : /data/skywalking/skywalking-agent/skywalking-agent.jar
Error occurred during initialization of VM
agent library failed Agent_OnLoad: instrument
Picked up JAVA_TOOL_OPTIONS: -javaagent:/data/skywalking/skywalking-agent/skywalking-agent.jar
Error opening zip file or JAR manifest missing : /data/skywalking/skywalking-agent/skywalking-agent.jar
Error occurred during initialization of VM
agent library failed Agent_OnLoad: instrument
Picked up JAVA_TOOL_OPTIONS: -javaagent:/data/skywalking/skywalking-agent/skywalking-agent.jar
Error opening zip file or JAR manifest missing : /data/skywalking/skywalking-agent/skywalking-agent.jar
Error occurred during initialization of VM
agent library failed Agent_OnLoad: instrument
Picked up JAVA_TOOL_OPTIONS: -javaagent:/data/skywalking/skywalking-agent/skywalking-agent.jar
Error opening zip file or JAR manifest missing : /data/skywalking/skywalking-agent/skywalking-agent.jar
Error occurred during initialization of VM
agent library failed Agent_OnLoad: instrument

意思是说 skywalking-agent.jar 没有找到需要安装
看了一眼安装教程有点繁琐,先去掉,后续有时间再进行安装
更改docker-compose.yml 文件中skywalking相关
每个服务配置下都有以下这三行,删除掉即可

在这里插入图片描述
删除完之后将nacos配置进行更改下
在这里插入图片描述
再次启动

docker compose -f docker-compose.yml up -d

发现redis连接报错一直连接127.0.0.1, ,可是我的配置文件中名称指定了地址

Caused by: org.redisson.client.RedisConnectionException: Unable to connect to Redis server: localhost/127.0.0.1:6379
        at org.redisson.connection.ConnectionsHolder.lambda$createConnection$2(ConnectionsHolder.java:167) ~[redisson-3.41.0.jar!/:3.41.0]
        at java.base/java.util.concurrent.CompletableFuture.uniHandle(Unknown Source) ~[na:na]
        at java.base/java.util.concurrent.CompletableFuture$UniHandle.tryFire(Unknown Source) ~[na:na]
        at java.base/java.util.concurrent.CompletableFuture.postComplete(Unknown Source) ~[na:na]
        at java.base/java.util.concurrent.CompletableFuture.completeExceptionally(Unknown Source) ~[na:na]
        at org.redisson.connection.ConnectionsHolder.lambda$createConnection$5(ConnectionsHolder.java:181) ~[redisson-3.41.0.jar!/:3.41.0]
        at java.base/java.util.concurrent.CompletableFuture.uniWhenComplete(Unknown Source) ~[na:na]
        at java.base/java.util.concurrent.CompletableFuture$UniWhenComplete.tryFire(Unknown Source) ~[na:na]
        at java.base/java.util.concurrent.CompletableFuture.postComplete(Unknown Source) ~[na:na]
        at java.base/java.util.concurrent.CompletableFuture.completeExceptionally(Unknown Source) ~[na:na]
        at org.redisson.client.RedisClient$1$2.run(RedisClient.java:304) ~[redisson-3.41.0.jar!/:3.41.0]
        at io.netty.util.concurrent.AbstractEventExecutor.runTask(AbstractEventExecutor.java:173) ~[netty-common-4.1.116.Final.jar!/:4.1.116.Final]
        at io.netty.util.concurrent.AbstractEventExecutor.safeExecute(AbstractEventExecutor.java:166) ~[netty-common-4.1.116.Final.jar!/:4.1.116.Final]
        at io.netty.util.concurrent.SingleThreadEventExecutor.runAllTasks(SingleThreadEventExecutor.java:472) ~[netty-common-4.1.116.Final.jar!/:4.1.116.Final]
        at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:569) ~[netty-transport-4.1.116.Final.jar!/:4.1.116.Final]
        at io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:997) ~[netty-common-4.1.116.Final.jar!/:4.1.116.Final]
        at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74) ~[netty-common-4.1.116.Final.jar!/:4.1.116.Final]
        at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30) ~[netty-common-4.1.116.Final.jar!/:4.1.116.Final]

排查发现 docker-compose.yml 文件中指定了环境 test

SPRING_PROFILES_ACTIVE=test

更改为

SPRING_PROFILES_ACTIVE=dev

在这里插入图片描述
处理完成之后我们再次启动


网站公告

今日签到

点亮在社区的每一天
去签到