Creación de una imagen de Docker personalizada a partir de un paquete desplegable
Puede crear imágenes de Docker personalizadas que incluyan el código personalizado o las configuraciones personalizadas y, a continuación, compartir y desplegar las nuevas imágenes.
Important:
A partir de HCL Commerce 9.1.14.0, las imágenes del contenedor de aplicaciones están pensadas para ejecutarse como usuario no raíz de forma predeterminada. Este cambio puede interrumpir su despliegue personalizado. Por lo tanto, debe revisar el cambio y sus posibles efectos. Para obtener más información, consulte HCL Commerce : usuarios y privilegios de contenedores.
Note: Si está trabajando en un entorno de ejecución local para fines de pruebas, desarrollo o depuración, puede que desee utilizar un método temporal para desplegar rápidamente cambios en el entorno local. Para obtener más información, consulte Actualización de aplicaciones dentro de contenedores Docker en ejecución.
Before you begin
- En un entorno de desarrollo, cree paquetes de personalización (
ts,store,search,xc) de modo que incluyan el código personalizado. Para obtener más información, consulte Compilación de paquetes. - Descargue los paquetes de personalización en el entorno de ejecución.
About this task
- Crear un Dockerfile para cada tipo de imagen de Docker.
- Crear un archivo docker-compose.yml que haga referencia a Dockerfiles para crear las imágenes nuevas.
+search ++Dockerfile ++CusDeploy +store ++Dockerfile ++CusDeploy +app ++Dockerfile ++CusDeploy +web ++Dockerfile +xc ++Dockerfile ++CusDeploy +db ++Dockerfile +docker-compose.yml
Procedure
-
Crear directorios CusDeploy independientes para cada imagen de Docker que quiere personalizar.
Por ejemplo,
- /opt/WebSphere/db/CusDeployNote: Esto solo es aplicable si está ejecutando la base de datos en un contenedor de Docker.
- /opt/WebSphere/search/CusDeploy
- /opt/WebSphere/store/CusDeploy
- /opt/WebSphere/xc/CusDeploy
- /opt/WebSphere/app/CusDeploy
- /opt/WebSphere/web/CusDeploy
- /opt/WebSphere/db/CusDeploy
-
Extraiga todos los paquetes de personalización que se crearon desde el programa de utilidad WCB en el directorio apropiado.
Por ejemplo,
- Extraiga wcbd-deploy-server-ts-app.zip en /opt/WebSphere/app/CusDeploy.
- Extraiga wcbd-deploy-server-crs-app.zip en /opt/WebSphere/store/CusDeploy
- Extraiga wcbd-deploy-server-search-app.zip en /opt/WebSphere/search/CusDeploy.
- Extraiga wcbd-deploy-server-xc-app.zip en /opt/WebSphere/xc/CusDeploy.
-
Complete los siguientes pasos para crear o actualizar un Dockerfile para crear una nueva imagen de aplicación de búsqueda de Docker.
-
Complete los siguientes pasos para crear o actualizar un Dockerfile para crear una nueva imagen de
crs-appDocker (tienda). -
Complete los siguientes pasos para crear o actualizar un Dockerfile para crear una nueva imagen de
ts-appTransaction server Docker container. -
Complete los siguientes pasos para crear o actualizar un Dockerfile para crear una nueva imagen de
xc-appDocker (personalización). -
Complete los siguientes pasos para crear o actualizar un Dockerfile para crear una nueva imagen de
ts-webDocker (web). -
Complete los siguientes pasos para crear o actualizar un Dockerfile para crear una nueva imagen de
ts-dbDocker (base de datos).Note: Esto solo es aplicable si está ejecutando la base de datos en un contenedor de Docker. -
Copie el archivo docker-compose.yml existente en el mismo directorio que contenga los directorios de Docker.
Por ejemplo, /opt/WebSphere/docker-compose.yml.
-
Edite el archivo docker-compose.yml para añadir parámetros build y context
Por ejemplo,
db: build: context: db image: <docker_registry>/commerce/ts-db:<tag> ... app: build: context: app image: <docker_registry>/commerce/ts-app:<tag> ... search: build: context: search image: <docker_registry>/commerce/search-app:<tag> ... store: build: context: store image: <docker_registry>/commerce/crs-app:<tag> ... web: build: context: web image: <docker_registry>/commerce/ts-web:<tag> ... -
Detenga y elimine los contenedores de ejecución existentes.
Por ejemplo, puede ejecutar el siguiente mandato:
docker-compose -f docker-compose.yml rm -
Ejecute el siguiente mandato para crear las nuevas imágenes.
docker-compose -f docker-compose.yml buildNote: Si desea crear y, a continuación, desplegar los contenedores en un mandato puede utilizardocker-compose -f docker-compose.yml up --build -d