使用dockerfile构建镜像时,jar包只能放在根目录下,放其他目录下就无法启动容器
# 省略其他代码...
COPY zw_relay_uap_server_gateway.jar /gateway.jar
COPY zw_relay_uap_server_usermanage.jar /usermanage.jar
COPY zw_relay_uap_server_authority.jar /authority.jar
COPY run_uap_server.sh /run_uap_server.sh
# 省略其他代码...
# 启动脚本赋权限
RUN chmod +x /run_uap_server.sh
# 运行jar包
CMD nohup sh -c "/run_uap_server.sh && java -jar /gateway.jar"
按以上配置构建镜像后,可正常启动容器。
问题: 将COPY的路径改为相对于Dockerfile文件的路径时,就无法启动容器
# 省略其他代码...
COPY zw_relay_uap_server_gateway.jar gateway.jar
COPY zw_relay_uap_server_usermanage.jar usermanage.jar
COPY zw_relay_uap_server_authority.jar authority.jar
COPY run_uap_server.sh run_uap_server.sh
# 省略其他代码...
# 启动脚本赋权限
RUN chmod +x run_uap_server.sh
# 运行jar包
CMD nohup sh -c "run_uap_server.sh && java -jar gateway.jar"
容器启动命令如下
docker run -it -d --name uap_server --net zw_relay --ip 192.168.0.5 -p 5555:5555 -p 8999:8999 -p 8900:8900 -v /home/volume/uap_server/:/opt/app/ uap_server:1.0