{"version":"1.0","provider_name":"Profesionales de Docker","provider_url":"https:\/\/dockerpros.com\/es","title":"Docker Compose Override Files - Dockerpros","type":"rich","width":600,"height":338,"html":"<blockquote class=\"wp-embedded-content\" data-secret=\"NOYjQktgC7\"><a href=\"https:\/\/dockerpros.com\/es\/wiki\/docker-compose-override-files\/\">Archivos de Anulaci\u00f3n de Docker Compose\n\nDocker Compose es una herramienta que permite definir y ejecutar aplicaciones multi-contenedor de Docker utilizando archivos YAML. Los archivos de anulaci\u00f3n de Docker Compose son una caracter\u00edstica poderosa que permite modificar la configuraci\u00f3n de un servicio sin alterar el archivo docker-compose.yml original.\n\n\u00bfQu\u00e9 son los archivos de anulaci\u00f3n?\n\nLos archivos de anulaci\u00f3n son archivos YAML adicionales que se utilizan junto con el archivo docker-compose.yml principal para modificar o extender su configuraci\u00f3n. Estos archivos siguen una convenci\u00f3n de nomenclatura espec\u00edfica y se pueden utilizar para:\n\n1. Sobrescribir valores de configuraci\u00f3n existentes\n2. Agregar nuevos servicios o redes\n3. Modificar variables de entorno\n4. Cambiar puertos o vol\u00famenes\n5. Ajustar configuraciones espec\u00edficas del entorno\n\nConvenci\u00f3n de nomenclatura\n\nEl archivo de anulaci\u00f3n m\u00e1s com\u00fanmente utilizado se llama docker-compose.override.yml. Docker Compose busca autom\u00e1ticamente este archivo cuando se ejecuta el comando docker-compose up. Sin embargo, tambi\u00e9n puedes utilizar otros nombres de archivo y especificarlos manualmente utilizando la opci\u00f3n -f.\n\nEstructura del archivo de anulaci\u00f3n\n\nLa estructura de un archivo de anulaci\u00f3n es similar a la del archivo docker-compose.yml principal. Contiene las mismas claves de nivel superior (version, services, networks, volumes), pero solo incluye las secciones que deseas modificar o agregar.\n\nEjemplo de uso\n\nSupongamos que tienes el siguiente archivo docker-compose.yml:\n\n```yaml\nversion: '3.8'\nservices:\n  web:\n    image: nginx:latest\n    ports:\n      - \"80:80\"\n    environment:\n      - NODE_ENV=production\n```\n\nY creas un archivo docker-compose.override.yml con el siguiente contenido:\n\n```yaml\nversion: '3.8'\nservices:\n  web:\n    environment:\n      - NODE_ENV=development\n    volumes:\n      - .\/app:\/app\n```\n\nCuando ejecutes docker-compose up, Docker Compose combinar\u00e1 ambos archivos, resultando en una configuraci\u00f3n final donde:\n\n- La variable de entorno NODE_ENV se establece en \"development\" (sobrescribiendo el valor original)\n- Se agrega un volumen adicional\n\nUso avanzado\n\nPuedes crear m\u00faltiples archivos de anulaci\u00f3n para diferentes prop\u00f3sitos:\n\n1. docker-compose.override.yml: Para configuraciones por defecto del entorno de desarrollo\n2. docker-compose.prod.yml: Para configuraciones de producci\u00f3n\n3. docker-compose.test.yml: Para configuraciones de pruebas\n\nPara utilizar estos archivos, puedes ejecutar:\n\n```bash\ndocker-compose -f docker-compose.yml -f docker-compose.prod.yml up\n```\n\nVentajas de usar archivos de anulaci\u00f3n\n\n1. Mantenimiento m\u00e1s f\u00e1cil: Permite mantener el archivo principal limpio y espec\u00edfico del entorno\n2. Flexibilidad: Facilita la adaptaci\u00f3n de la configuraci\u00f3n para diferentes entornos\n3. Control de versiones: Permite mantener diferentes configuraciones en ramas separadas\n4. Reutilizaci\u00f3n: Facilita la reutilizaci\u00f3n de configuraciones base en m\u00faltiples proyectos\n\nConsideraciones importantes\n\n1. Los archivos de anulaci\u00f3n no pueden eliminar servicios o configuraciones existentes, solo modificarlos o agregar nuevos\n2. Las claves en los archivos de anulaci\u00f3n se fusionan con las del archivo principal, no las reemplazan completamente\n3. Si una clave en el archivo de anulaci\u00f3n se establece en null, se eliminar\u00e1 del servicio\n\nConclusi\u00f3n\n\nLos archivos de anulaci\u00f3n de Docker Compose son una herramienta poderosa para gestionar configuraciones complejas de aplicaciones multi-contenedor. Permiten mantener una configuraci\u00f3n base limpia mientras se adapta f\u00e1cilmente a diferentes entornos y casos de uso. Al dominar el uso de estos archivos, puedes mejorar significativamente tu flujo de trabajo de desarrollo y despliegue con Docker Compose.<\/a><\/blockquote><iframe sandbox=\"allow-scripts\" security=\"restricted\" src=\"https:\/\/dockerpros.com\/es\/wiki\/docker-compose-override-files\/embed\/#?secret=NOYjQktgC7\" width=\"600\" height=\"338\" title=\"\u00abDocker Compose Override Files\u00bb \u2014 Dockerpros\" data-secret=\"NOYjQktgC7\" frameborder=\"0\" marginwidth=\"0\" marginheight=\"0\" scrolling=\"no\" class=\"wp-embedded-content\"><\/iframe><script>\n\/**\n * WordPress inline HTML embed\n *\n * @since 4.4.0\n * @output wp-includes\/js\/wp-embed.js\n *\n * Single line comments should not be used since they will break\n * the script when inlined in get_post_embed_html(), specifically\n * when the comments are not stripped out due to SCRIPT_DEBUG\n * being turned on.\n *\/\n(function ( window, document ) {\n\t'use strict';\n\n\t\/* Abort for ancient browsers. *\/\n\tif ( ! document.querySelector || ! window.addEventListener || typeof URL === 'undefined' ) {\n\t\treturn;\n\t}\n\n\t\/** @namespace wp *\/\n\twindow.wp = window.wp || {};\n\n\t\/* Abort if script was already executed. *\/\n\tif ( !! window.wp.receiveEmbedMessage ) {\n\t\treturn;\n\t}\n\n\t\/**\n\t * Receive embed message.\n\t *\n\t * @param {MessageEvent} e\n\t *\/\n\twindow.wp.receiveEmbedMessage = function( e ) {\n\t\tvar data = e.data;\n\n\t\t\/* Verify shape of message. *\/\n\t\tif (\n\t\t\t! ( data || data.secret || data.message || data.value ) ||\n\t\t\t\/[^a-zA-Z0-9]\/.test( data.secret )\n\t\t) {\n\t\t\treturn;\n\t\t}\n\n\t\tvar iframes = document.querySelectorAll( 'iframe[data-secret=\"' + data.secret + '\"]' ),\n\t\t\tblockquotes = document.querySelectorAll( 'blockquote[data-secret=\"' + data.secret + '\"]' ),\n\t\t\tallowedProtocols = new RegExp( '^https?:$', 'i' ),\n\t\t\ti, source, height, sourceURL, targetURL;\n\n\t\tfor ( i = 0; i < blockquotes.length; i++ ) {\n\t\t\tblockquotes[ i ].style.display = 'none';\n\t\t}\n\n\t\tfor ( i = 0; i < iframes.length; i++ ) {\n\t\t\tsource = iframes[ i ];\n\n\t\t\tif ( e.source !== source.contentWindow ) {\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tsource.removeAttribute( 'style' );\n\n\t\t\tif ( 'height' === data.message ) {\n\t\t\t\t\/* Resize the iframe on request. *\/\n\t\t\t\theight = parseInt( data.value, 10 );\n\t\t\t\tif ( height > 1000 ) {\n\t\t\t\t\theight = 1000;\n\t\t\t\t} else if ( ~~height < 200 ) {\n\t\t\t\t\theight = 200;\n\t\t\t\t}\n\n\t\t\t\tsource.height = height;\n\t\t\t} else if ( 'link' === data.message ) {\n\t\t\t\t\/* Link to a specific URL on request. *\/\n\t\t\t\tsourceURL = new URL( source.getAttribute( 'src' ) );\n\t\t\t\ttargetURL = new URL( data.value );\n\n\t\t\t\tif (\n\t\t\t\t\tallowedProtocols.test( targetURL.protocol ) &&\n\t\t\t\t\ttargetURL.host === sourceURL.host &&\n\t\t\t\t\tdocument.activeElement === source\n\t\t\t\t) {\n\t\t\t\t\twindow.top.location.href = data.value;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t};\n\n\tfunction onLoad() {\n\t\tvar iframes = document.querySelectorAll( 'iframe.wp-embedded-content' ),\n\t\t\ti, source, secret;\n\n\t\tfor ( i = 0; i < iframes.length; i++ ) {\n\t\t\t\/** @var {IframeElement} *\/\n\t\t\tsource = iframes[ i ];\n\n\t\t\tsecret = source.getAttribute( 'data-secret' );\n\t\t\tif ( ! secret ) {\n\t\t\t\t\/* Add secret to iframe *\/\n\t\t\t\tsecret = Math.random().toString( 36 ).substring( 2, 12 );\n\t\t\t\tsource.src += '#?secret=' + secret;\n\t\t\t\tsource.setAttribute( 'data-secret', secret );\n\t\t\t}\n\n\t\t\t\/*\n\t\t\t * Let post embed window know that the parent is ready for receiving the height message, in case the iframe\n\t\t\t * loaded before wp-embed.js was loaded. When the ready message is received by the post embed window, the\n\t\t\t * window will then (re-)send the height message right away.\n\t\t\t *\/\n\t\t\tsource.contentWindow.postMessage( {\n\t\t\t\tmessage: 'ready',\n\t\t\t\tsecret: secret\n\t\t\t}, '*' );\n\t\t}\n\t}\n\n\twindow.addEventListener( 'message', window.wp.receiveEmbedMessage, false );\n\tdocument.addEventListener( 'DOMContentLoaded', onLoad, false );\n})( window, document );\n\/\/# sourceURL=https:\/\/dockerpros.com\/wp-includes\/js\/wp-embed.js\n<\/script>","thumbnail_url":"https:\/\/dockerpros.com\/wp-content\/uploads\/2024\/07\/docker-compose-override-files_1271.jpg","thumbnail_width":800,"thumbnail_height":600,"description":"Docker Compose override files allow users to customize and extend the base configuration defined in a `docker-compose.yml` file. By creating a `docker-compose.override.yml`, developers can specify additional services, modify existing ones, or override settings, enabling flexible deployment scenarios without altering the primary configuration. This feature enhances collaboration and environment-specific setups, streamlining development and production workflows."}