Convierte el código del proyecto en una imagen reflejada y luego guárdalo como un archivo tar. Todo el proceso

1. Escriba make.sh y Dockerfile, requirements.txt para el proyecto.

Plantilla de archivo 1.make.sh

#!/usr/bin/env bash
echo "开始制作镜像..."
#用日期标记镜像版本
image_tag=`date +%Y%m%d` #_%H%M
echo "当前时间:$image_tag"
#制作镜像,使用的腾讯云(用的当前目录下的Dockerfile)
docker build -t ccr.ccs.tencentyun.com/my_test/my_test_project:v${image_tag} . 

echo "制作镜像成功!"
#登录腾讯云账号
docker login --username=my_user_name -p=my_password ccr.ccs.tencentyun.com
#向腾讯云推送制作好的镜像
docker push ccr.ccs.tencentyun.com/my_test/my_test_project:v${image_tag}

echo "镜像版本保存"
#将刚才制作好的镜像版本标识为latest
docker tag ccr.ccs.tencentyun.com/my_test/my_test_project:v${image_tag} ccr.ccs.tencentyun.com/my_test/my_test_project:latest
#向腾讯云推送latest镜像
docker push ccr.ccs.tencentyun.com/my_test/my_test_project:latest

echo "删除本地镜像"
docker rmi ccr.ccs.tencentyun.com/my_test/my_test_project:v${image_tag}
docker rmi ccr.ccs.tencentyun.com/my_test/my_test_project:latest

2. Plantilla de archivo Docker

#镜像基于某个python版本镜像
FROM ccr.ccs.tencentyun.com/my_test/python_base:data_v20230526

#设置时区
ENV TZ=Asia/Shanghai
RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone

RUN mkdir -p /usr/src/app
ENV PYTHONPATH=/usr/src/app
WORKDIR /usr/src/app


#复制当前目录下所有文件到镜像里
COPY . /usr/src/app
COPY requirements.txt /usr/src/app/requirements.txt
#为镜像安装需要的pyton包
RUN pip install -r /usr/src/app/requirements.txt
CMD python

3.requirements.txt (el paquete de python requerido por el proyecto y la versión del paquete de python)

#列如
numpy==1.14.5
pandas==0.21.0
lxml==4.2.3
SQLAlchemy==1.2.10
SciPy==1.1.0
pymysql==0.9.2
requests==2.19.1
pyyaml==3.13
xlrd==1.1.0
arrow==0.13.2
statsmodels==0.9.0
patsy==0.5.0
redis==2.10.6

2. Coloque el archivo de código fuente del proyecto en gitlab.

3. Utilice jenkins para empaquetar automáticamente la imagen reflejada cuando se actualice el proyecto.

1. Cree un nuevo proyecto en jenkins.
Opción: Creación de un proyecto de software de estilo libre

2. Configure la gestión del código fuente.
Seleccione git para la administración del código fuente y complete el enlace de gitlab del proyecto para la URL del repositorio.
Las credenciales establecen la contraseña de la cuenta de la cuenta git.
Rama especificada (si está vacía, significa cualquiera): si la columna de la rama especificada especifica maestro, complete */maestro.

3. Configure los activadores de compilación.
Seleccione SCM de sondeo, complete el programa * * * * *
(es decir, juzgue si el código git se actualiza cada minuto, si se actualiza, extraiga el código más reciente y luego ejecute el paso de compilación automáticamente)

4. Configure la compilación.
Agregue un paso de compilación para seleccionar Ejecutar script de shell en un host remoto usando ssh.
Luego, el sitio SSH selecciona el host Linux responsable del empaquetado.
El comando escribe:

#登录腾讯云docker账号
sh /mypath/docker_login.sh
cd /mypath/jenkins_data/workspace/my_test_project
#为make.sh文件赋执行权限
chmod 777 make.sh
#运行make.sh(用最新代码制作镜像,并推送到腾讯云仓库)
./make.sh

4. Guarde la imagen como un archivo tar.

#拉下最新的项目镜像
docker push ccr.ccs.tencentyun.com/my_test/my_test_project:latest
#把镜像保存为tar归档文件
docker save -o my_test_project_v20230526.tar ccr.ccs.tencentyun.com/my_test/my_test_project:latest

5. Utilice archivos de almacenamiento. (Por lo general, guardar y cargar funcionará)
1. Docker load importa la imagen exportada usando el comando docker save

docker load < my_test_project_v20230526.tar 

2. Docker import crea una imagen espejo de un archivo.

docker import  my_test_project_v20230526.tar  new_name:new_version

3. La diferencia entre carga e importación.
La importación de Docker se usa generalmente junto con la exportación de Docker.
Docker Load generalmente se usa junto con Docker Save.
Si necesita importar la imagen completa, incluida la jerarquía de la imagen y los metadatos, debe usar el comando de carga de la ventana acoplable.
Si solo necesita importar el sistema de archivos del contenedor y convertirlo en una nueva imagen, puede usar el comando de importación de la ventana acoplable.

5. También puede cargar el archivo tar en el almacenamiento de objetos cos de Tencent Cloud para su uso posterior.

Supongo que te gusta

Origin blog.csdn.net/qq_44821149/article/details/130887990
Recomendado
Clasificación