Tips para desarrollo y despliegue contenedores de Docker

변수 de entorno



Una buena práctica, no sólo en Docker sino en cualquier escenario, es el uso de variables de entorno y de esa manera evitar ingresar valores quemados (hard code) al código.
Docker의 경우에는 다양한 변수를 쉽게 사용할 수 있습니다.

version: "3"
services:
    cms_app:
        image: strapi/strapi
        environment:
            DATABASE_CLIENT: ${DATABASE_CLIENT}
            DATABASE_NAME: ${POSTGRES_DB}
            DATABASE_HOST: ${DATABASE_HOST}
            DATABASE_PORT: ${DATABASE_PORT}
            DATABASE_USERNAME: ${DATABASE_USERNAME}
            DATABASE_PASSWORD: ${DATABASE_PASSWORD}
        volumes:
        - "${CMS_APP_PATH}:/srv/app"
        ports:
        - "1337:1337"


Como podemos notar en el archivo docker-compose anterior, en vez de insertar los valores de manera estática, utilizamos la forma ${VARIABLE_DE_ENTORNO}
라스 변수는 운영 시스템 운영 지침에 대해 정의하고 관리 권한을 부여하지 않으며 AWS 인스턴스에 영향을 미치지 않습니다. Localmente y para fines de desarrollo, podemos utilizar un archivo .env en el que definamos nuestras 변수.

DATABASE_CLIENT=postgres
DATABASE_HOST=container_db
DATABASE_PORT=5432
DATABASE_USERNAME=my-user
DATABASE_PASSWORD=p4ssw0rd


Comunicar contenedores definidos en diferentes archivo docker-compose



En algunas ocasiones, no tenemos toda nuestra infraestructura definida en un sólo archivo docker-compose, esto es especialmente cierto en fase de desarrollo y estamos comunicando aplicaciones totalmente diferentes.
Para poder establecer un canal de comunicación, creamos una red en el primer archivo docker-compose que ejecutemos.

version: "3"
services:
    cms_app:
        image: strapi/strapi
        ...
        ports: - "1337:1337"
        depends_on:
            - cms_db
        networks:
            - local_net
    cms_db:
        image: postgres
        ...
        networks:
        - local_net

networks:
    local_net:
        name: multiple_containers_net 


Tenemos la red create disponible para ser "consumida"desde de otros proyectos docker-compose de la siguiente manera.

version: "3.8"
services:
    adminer:
        image: adminer
        ...
        networks:
            - adminer_local_net
networks:
    adminer_local_net:
        external:
        name: multiple_containers_net


도커 실행에 따라 네트워크 하위 명령을 사용하여 도커 명령을 제어할 수 있는 컨텐도어를 생성할 수 있습니다.

--network="multiple_containers_net"

좋은 웹페이지 즐겨찾기