lsb_release -a
yum -y install podman
sudo apt install podman
/etc/containers/registries.conf
内容
unqualified-search-registries = ["docker.io"]
# 自定义搜索器
[[registry]]
# 仓库前缀(镜像前缀)
prefix = "docker.io"
# 加速器地址,使用阿里自己的镜像源 替换xxxx 为阿里自己的
location = "xxxxxx.mirror.aliyuncs.com"
insecure = true
[[registry]]
location = "hub-mirror.c.163.com"
insecure = true
[[registry.mirror]]
# 百度镜像源
location = "mirror.baidubce.com"
insecure = true
[[registry.mirror]]
# 网易 163 镜像源
location = "hub-mirror.c.163.com"
insecure = true
[[registry.mirror]]
# 上海交大镜像源
location = "docker.mirrors.sjtug.sjtu.edu.cn"
insecure = true
[[registry.mirror]]
# 南京大学镜像源
location = "docker.nju.edu.cn"
insecure = true
sudo apt-get install python3-pip
2、 RedHat/CentOS
sudo yum install python3-pip
pip3 install podman-compose
version: '3.4'
services:
mysql:
image: swr.cn-north-4.myhuaweicloud.com/ddn-k8s/docker.io/mysql:8.0
environment:
LANG: C.UTF-8
MYSQL_ROOT_PASSWORD: 123456
MYSQL_DATABASE: mydatabase
MYSQL_USER: admin
MYSQL_PASSWORD: 123456
ports:
- "23306:3306"
volumes:
- './mysql:/var/lib/mysql'
- "./mysql-conf:/etc/mysql/conf.d"
- './data:/data'
healthcheck:
test: [ "CMD", "mysqladmin" ,"ping", "-h", "localhost" ]
timeout: 20s
retries: 10
podman ps
└─root
├─Dockerfile
├─podman-compose.yml
└─app
│
├─app.jar
├─entrypoint.sh
└─deploy.sh
#选择官方 OpenJDK 17 JDK 镜像作为基础镜像
FROM dragonwell-registry.cn-hangzhou.cr.aliyuncs.com/dragonwell/dragonwell:17-standard-ga-anolis
#定义一个卷挂载点,用于持久化或共享数据
VOLUME /opt/app
#设定时区环境变量,并在容器中设置相应的时区
ENV TZ=Asia/Shanghai
RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone
#设置工作目录,后续的指令将在这个目录下执行
WORKDIR /opt/app
#将本地的entrypoint.sh脚本复制到容器的工作目录下
COPY ./app/entrypoint.sh /opt/app/entrypoint.sh
#给entrypoint.sh脚本添加执行权限
RUN chmod +x /opt/app/entrypoint.sh
#设置容器启动时执行的命令或脚本
ENTRYPOINT ["/opt/app/entrypoint.sh"]
#!/bin/bash
# entrypoint.sh
JAR_FILE="/opt/app/app.jar"
if [ ! -f "$JAR_FILE" ]; then
echo "No APP-JAR file found in /opt/app"
exit 1
fi
exec java -jar "$JAR_FILE"
chmod +x entrypoint.sh
podman build -f Dockerfile -t springboot-app
version: '3.4'
services:
springboot-service:
container_name: app-server
image: springboot-app
environment:
- _JAVA_OPTIONS=-Xmx1024m -Xms512m -XX:+UseZGC
- SPRING_PROFILES_ACTIVE=test
- SPRING_DATASOURCE_URL=jdbc:mysql://mysql:3306/mydatabase?useUnicode=true&characterEncoding=utf8&useSSL=false&serverTimezone=Asia/Shanghai&createDatabaseIfNotExist=true&allowPublicKeyRetrieval=true
- TZ=Asia/Shanghai
volumes:
- './logs:/opt/app/logs'
- './app:/opt/app'
- '/usr/share/zoneinfo/Asia/Shanghai:/etc/localtime'
ports:
- "8017:8092"
depends_on:
- mysql # 注意:这不会等待 MySQL 完全就绪
mysql:
image: swr.cn-north-4.myhuaweicloud.com/ddn-k8s/docker.io/mysql:8.0
container_name: mysql
environment:
MYSQL_ROOT_PASSWORD: 123456
MYSQL_DATABASE: mydatabase
MYSQL_USER: admin
MYSQL_PASSWORD: 123456
ports:
- "23306:3306"
volumes:
- './mysql:/var/lib/mysql'
- "./mysql-conf:/etc/mysql/conf.d"
- './data:/data'
healthcheck:
test: [ "CMD", "mysqladmin" ,"ping", "-h", "localhost" ]
timeout: 20s
retries: 10
podman-compose up -d
podman-compose down
#/bin/bash
cp app.jar "$(date +"%Y%m%d%H%M%S").jar";
mv app-0.0.1-SNAPSHOT.jar app.jar;
podman-compose -f ../podman-compose.yml down;
echo "podman 容器停止完成!!!";
podman-compose -f ../podman-compose.yml up -d;
echo "podman 容器启动!!!!";
podman logs -f app-server;
chmod +x deploy.sh
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。