window.pipedriveLeadboosterConfig = { base: 'leadbooster-chat.pipedrive.com', companyId: 11580370, playbookUuid: '22236db1-6d50-40c4-b48f-8b11262155be', versión: 2, } ;(function () { var w = window if (w.LeadBooster) { console.warn('LeadBooster ya existe') } else { w.LeadBooster = { q: [], on: function (n, h) { this.q.push({ t: 'o', n: n, h: h }) }, trigger: function (n) { this.q.push({ t: 't', n: n }) }, } } })() CÓMO HACER DOCKER LECCIÓN APRENDIDA - The Codest
The Codest
  • Quiénes somos
  • Servicios
    • Desarrollo de software
      • Desarrollo Frontend
      • Desarrollo backend
    • Staff Augmentation
      • Desarrolladores frontales
      • Desarrolladores de backend
      • Ingenieros de datos
      • Ingenieros de la nube
      • Ingenieros de control de calidad
      • Otros
    • Asesoramiento
      • Auditoría y consultoría
  • Industrias
    • Fintech y Banca
    • E-commerce
    • Adtech
    • Tecnología sanitaria
    • Fabricación
    • Logística
    • Automoción
    • IOT
  • Valor para
    • CEO
    • CTO
    • Gestor de entregas
  • Nuestro equipo
  • Case Studies
  • Saber cómo
    • Blog
    • Meetups
    • Seminarios en línea
    • Recursos
Carreras profesionales Póngase en contacto
  • Quiénes somos
  • Servicios
    • Desarrollo de software
      • Desarrollo Frontend
      • Desarrollo backend
    • Staff Augmentation
      • Desarrolladores frontales
      • Desarrolladores de backend
      • Ingenieros de datos
      • Ingenieros de la nube
      • Ingenieros de control de calidad
      • Otros
    • Asesoramiento
      • Auditoría y consultoría
  • Valor para
    • CEO
    • CTO
    • Gestor de entregas
  • Nuestro equipo
  • Case Studies
  • Saber cómo
    • Blog
    • Meetups
    • Seminarios en línea
    • Recursos
Carreras profesionales Póngase en contacto
Flecha atrás VOLVER
2018-09-09
Desarrollo de software

CÓMO HACER DOCKER LECCIÓN APRENDIDA

Dawid Polchlopek

Desde que me di cuenta de que la aplicación que preparamos se ha ampliado considerablemente, he decidido encontrar un método completamente nuevo para automatizar el proceso de su lanzamiento. Para mí era importante encontrar una solución que permitiera activar nuevas funciones de forma aislada.

Introducción

Descubrir un método más sencillo de automatización de procesos supondría una mejora significativa de mi trabajo, así como del trabajo de todo mi equipo. equipo. Pensé: "¿Por qué no usar Docker?".

Durante la fase de preparación, creé dos configuraciones: una para la aplicación front-end y otra para la API. A continuación puedes ver una presentación de lo que he aprendido durante el proceso de desarrollo.

El primer problema

Quiero tener un repositorio clonado en el contenedor, así que he añadido una clave ssh a través del comando ADD en Dockerfile:

ADD ~/.ssh/testowy

Y ¡bam! El archivo no se encuentra. ¿Por qué?

Supongamos que tenemos la siguiente estructura de carpetas:

docker/
|-- stuff/
| Prueba.txt
|-- Dockerfile
server/
|-- Datos
| setup.yml

Ejecutar comando construya en el cola de acceso y sólo puedes añadir archivos de la carpeta local y sus subcarpetas locales, por ejemplo, cosas.

Si desea añadir el servidor recibirás un mensaje: "no se puede preparar el contexto"

Dockerignore

¿Te has preguntado alguna vez por qué la imagen tarda tanto en construirse? Quizá no usaste .dockerignorepara ignorar los archivos que no son necesarios en la imagen. La dirección .git debería eliminarse automáticamente, así como los archivos temporales.

Orden de los comandos en Dockerfile

Docker guarda cada línea de forma Dockerfile y después de la construcción de cada línea se guarda como una capa. Es muy importante no cambiar el orden de los comandos particulares con demasiada frecuencia.

DESDE ubuntu
EJECUTAR apt-get install -y software-properties-common python
EJECUTAR add-apt-repository ppa:chris-lea/node.js
RUN echo "deb http://us.archive.ubuntu.com/ubuntu/ precise universe" >> /etc/apt/sources.list
EJECUTAR apt-get update
EJECUTAR apt-get install -y nodejs
RUN apt-get install -y nodejs=0.6.12~dfsg1-1ubuntu1
RUN mkdir /var/www

ADD app.js /var/www/app.js

CMD ["/usr/bin/node", "/var/www/app.js"]

Por ejemplo, si cambia la última línea en Dockerfile, todas las líneas anteriores se descargarán de la caché mientras que la última línea se modificará. Si sustituye la línea nº 4, se modificarán todas las líneas desde la línea 4 hasta el final. Por esta razón vale la pena colocar los comandos que no cambiarán, al principio del archivo.

Copiar archivos a la imagen

Conviene tener en cuenta para qué se va a utilizar una imagen determinada. Si la necesitas para lanzar un servicio una vez, sólo tienes que copiar la imagen código directamente a la imagen:

COPIA . /carpeta

Desafortunadamente, esto hace imposible editar los archivos y cada vez que quieras editar tu código, tendrás que construir la imagen de nuevo.

Si estás usando MacOS y quieres usar la imagen construida para desarrollo, tienes que enfocar este asunto de una manera ligeramente diferente. Si vas a utilizar volúmenes, entonces tienes que estar preparado para que esta sea una solución extremadamente lenta (por ejemplo, la copia de un archivo desde el host al contenedor se realiza con una velocidad de 4,5 MB/s, mientras que la copia interna en el contenedor con una velocidad 10-20 veces superior). Por suerte, como puedes ver en enlace, el problema ha sido conocido y su solución es la cuestión clave para el equipo responsable del desarrollo de Docker para Mac.

¿Cómo se puede utilizar Docker para el desarrollo en esta situación?

Puedes utilizarlo para servicios externos, por ejemplo Redis/PSQL/Elasticsearch o utilizar soluciones preparadas, que ofrecen rsync: https://github.com/brikis98/docker-osx-dev

En resumen

Si tiene un equipo grande y desea probar una nueva función, docker será la herramienta ideal. Sin embargo, ¿la utilizaría para el lanzamiento en producción de un servidor? Aún no estoy totalmente convencido...

Además, recomiendo algunos artículos destacados:

  • cómo probar imágenes
  • algo más sobre Docker, pero que también merece la pena mencionar
  • por último, pero no por ello menos importante, la documentación de Docker

Artículos relacionados

Desarrollo de software

Crear aplicaciones web preparadas para el futuro: ideas del equipo de expertos de The Codest

Descubra cómo The Codest destaca en la creación de aplicaciones web escalables e interactivas con tecnologías de vanguardia, ofreciendo experiencias de usuario fluidas en todas las plataformas. Descubra cómo nuestra experiencia impulsa la transformación...

EL MEJOR
Desarrollo de software

Las 10 mejores empresas de desarrollo de software de Letonia

Conozca las principales empresas de desarrollo de software de Letonia y sus innovadoras soluciones en nuestro último artículo. Descubra cómo estos líderes tecnológicos pueden ayudarle a mejorar su negocio.

thecodest
Soluciones para empresas y escalas

Fundamentos del desarrollo de software Java: Guía para externalizar con éxito

Explore esta guía esencial sobre el desarrollo de software Java outsourcing con éxito para mejorar la eficiencia, acceder a la experiencia e impulsar el éxito de los proyectos con The Codest.

thecodest
Desarrollo de software

La guía definitiva para subcontratar en Polonia

El auge de las outsourcing en Polonia está impulsado por los avances económicos, educativos y tecnológicos, que fomentan el crecimiento de las TI y un clima favorable a las empresas.

TheCodest
Soluciones para empresas y escalas

Guía completa de herramientas y técnicas de auditoría informática

Las auditorías informáticas garantizan sistemas seguros, eficientes y conformes. Obtenga más información sobre su importancia leyendo el artículo completo.

The Codest
Jakub Jakubowicz CTO y Cofundador

Suscríbase a nuestra base de conocimientos y manténgase al día de la experiencia del sector informático.

    Quiénes somos

    The Codest - Empresa internacional de desarrollo de software con centros tecnológicos en Polonia.

    Reino Unido - Sede central

    • Oficina 303B, 182-184 High Street North E6 2JA
      Londres, Inglaterra

    Polonia - Centros tecnológicos locales

    • Parque de oficinas Fabryczna, Aleja
      Pokoju 18, 31-564 Cracovia
    • Embajada del Cerebro, Konstruktorska
      11, 02-673 Varsovia, Polonia

      The Codest

    • Inicio
    • Quiénes somos
    • Servicios
    • Case Studies
    • Saber cómo
    • Carreras profesionales
    • Diccionario

      Servicios

    • Asesoramiento
    • Desarrollo de software
    • Desarrollo backend
    • Desarrollo Frontend
    • Staff Augmentation
    • Desarrolladores de backend
    • Ingenieros de la nube
    • Ingenieros de datos
    • Otros
    • Ingenieros de control de calidad

      Recursos

    • Hechos y mitos sobre la cooperación con un socio externo de desarrollo de software
    • De EE.UU. a Europa: ¿Por qué las startups estadounidenses deciden trasladarse a Europa?
    • Comparación de los polos de desarrollo de Tech Offshore: Tech Offshore Europa (Polonia), ASEAN (Filipinas), Eurasia (Turquía)
    • ¿Cuáles son los principales retos de los CTO y los CIO?
    • The Codest
    • The Codest
    • The Codest
    • Privacy policy
    • Condiciones de uso del sitio web

    Copyright © 2025 por The Codest. Todos los derechos reservados.

    es_ESSpanish
    en_USEnglish de_DEGerman sv_SESwedish da_DKDanish nb_NONorwegian fiFinnish fr_FRFrench pl_PLPolish arArabic it_ITItalian jaJapanese ko_KRKorean nl_NLDutch etEstonian elGreek es_ESSpanish