#90 Exacto. En el caso de que sea algo costos de buildear la exporto y me la llevo donde sea.
#91 Entiendo. Pero necesito subirlo en el hub justamente para no tener que hacer el build cada vez que quiero utilizar la image.
EDIT: vale, lo de exportar podría ser una opcion, pero no me creo que no haya una solución correcta (utilizando el hub) para hacer lo que quiero.
#92 yo tengo automated builds, cada vez que hago un commit al repo actualiza el build y ademas tengo un trigger de otras builds en las que se basa el mio, por lo que esta siempre actualizado.
Sobre tu pregunta me temo que no puedes hacer eso.
#92ke2g:pero no me creo que no haya una solución correcta (utilizando el hub) para hacer lo que quiero.
Hombre, si usas un repositorio privado del Docker Hub no creo que tengas problemas por subir el fichero de configuración, ¿no?
#93 si son datos sensibles, no solo no debe estar en git sino que tampoco debe estar dentro de la imagen.
te has planteado montar un volumen en tiempo de ejecución?
de esta forma si alguien tiene tu imagen no tendrá tu fichero de configuración
#96 hay muchas opciones, pero lo que no es buena idea es tener la configuración dentro de la imagen.
Hay muchos motivos pero con este creo que lo entenderás fácilmente.
Si la configuración es externa, puedes certificar una imagen concreta, y sabes que no se ha modificado desde el desarrollo hasta su puesta en producción. Si la configuración está dentro, requieres recompilar por entorno (o tener N configuraciones dentro) lo cual no tiene mucho sentido
Formas de trabajar hay muchas, desde que la aplicación consulte a un 'config server' su configuración, a ser inyectada mediante ficheros, ser inyectada por variables de entorno, o incluso que la configuración sea un template y que al arrancar el contenedor un .sh modifique esta configuración por variables inyectadas desde fuera.
Cada una tiene sus ventajas y su complejidad, simplemente elige la que más se ajuste a lo que buscas
Hola devs!
Estoy usando Atom como editor de código y tengo instalado el plugin de php-ide y lo que me gustaría hacer es poder indicarle el ejecutable de PHP que tiene la imagen para así no tener que instalar php en mi máquina. Sabéis si es posible?
#99 Si lo que quieres es ejecutar el código en un contenedor docker, tendrás que dockerizar tu código.
#100 No me he parado a mirar cómo funcionan los intellisense pero en este caso, el servidor de lenguaje que utiliza este paquete requiere que se le especifique la ruta en la que se encuentra el ejecutable de PHP (igual que para VS Code).
Entiedo que si necesita la ruta es porque debe ejecutar el código. El tema es que no sé o de qué forma podría indicar esta ruta o si en su defecto tendría que hacerse un desarrollo en este paquete para habilitar el uso de una imagen de PHP y lo que sea que ejecute lo haga en el contendor.
Sí. El tema está en que estos paquetes te "obligan" a indicar la ruta en la que está el ejecutable de PHP, lo cual obliga a tener que tenerlo instalado en la máquina local.
Lo que quiero saber es si de alguna forma yo puedo tener una imagen de PHP con Docker y de alguna forma (si es posible) decirle que el ejecutable de PHP se encuentra en la imagen. No sé si es posible de alguna forma enlazar un directorio con el de un contenedor para que pase por allí. Simplemente, si es posible hacerlo tener que evitar instalar PHP en mi máquina.
¿Y por qué no pones tu código en un volumen de un contenedor con PHP, Apache y lo que te haga falta, bindeas al exterior un puerto y ale?
Lo que viene a ser el servidor web lo tengo montado y me funciona, con eso no tengo problemas.
La duda que tengo es si yo puedo usar de alguna forma el contenedor que levanto de PHP para decirle al paquete de Atom que la ruta del ejecutable de PHP está en una ubicación que no es la de /usr/bin/php7.2
El tema está en que si es posible hacer este tipo de comunicación pueda ver los errores e ir a la declaracíon de métodos, atributos, etc.
A lo mejor me estoy liando mucho y me cuesta pillarlo...
#105 No, no puedes.
Docker está pensado para que las cosas se ejecuten dentro de los contenedores, no fuera.
#106 Vale. Entonces sí tendría que ver cómo funciona este paquete para saber qué es lo que hace y en todo caso habilitarle una opción para que ejecute un comando de Docker.
ninja edit, ya resolví la duda..
ahora estoy investigando como asignar ips privadas para comunicar contenedores.. si alguien me da un poco de luz se lo agradezco
#108 ¿Usas Compose? Si no usas compose, empieza a usar compose.
Ejemplo de como asignar ip privada a una network determinada en un compose:
nexus:
container_name: nexus
image: sonatype/nexus3
networks:
proxy_bridge:
ipv4_address: 172.30.0.150
volumes:
- "/srv/nexus:/nexus-data"
restart: unless-stopped
De todos modos, los contenedores se pueden comunicar entre ellos sin necesidad de asignarles IPs estáticas. Simplemente llámalos por su nombre: Docker incorpora un DNS interno que resuelve las IPs de los containers al llamarlos por su nombre.
Por ejemplo, al container de arriba en lugar de usar la IP, se le puede llamar (siempre que sae desde dentro de la misma network) como nexus, por ejemplo http://nexus:8080/
Yo tengo asignado en este caso una IP estática porque delante tiene un proxy inverso y nginx si no puede resolver todos los nombres en arranque, crashea.
#110 el nombre por defecto del container sería $stack_nexus_1.
Tengo cinco o seis networks diferentes, una de ellas (la que está en el ejemplo) es un bridge para los containers que salen a través del proxy.
#111 para ese escenario si, pero si solo usas ese network dentro del network usa el nombre del container
Voy a escribir un post en ingles de como usar Docker for mac y no morir en la espera... si hay alguien interesando poner manita/PM xD
#113 Teniendo en cuenta que todo hipster que se precie que use docker, lo hace en mac... ¿no debería sobrar documentación por todas partes? xD
Yo estoy un poco hasta la polla de ver el 99% de la documentación, transparencias y charlas hechas sobre docker for mac.
Also, ¿qué diferencia hay? Docker for Mac carga una VM sobre virtualbox como Docker for Windows y el resto es transparente, ¿no? En el macbook lo tengo puesto pero lo uso muy poco porque ya tengo el sobremesa o el servidor con linux nativo.
#114 He estado usando docker for mac durante 2 meses.. he buscado informacion por todas, etc... y n encontre nada realmente "estable" que no hiciera que docker vaya pedaleando... (un ejemplo cargar un simple pagina de symfony le cuesta 20secs... usando docker-sync y demas beta solutions tiene sus defectos)
por lo que no, no funciona como en Linux (uso Linux de normal y tarda 3secs como mucho en ese ejemplo).
La documentacion sobre esto es muy escasa porque hablamos de cambios en la version Edge...
Los hipsters no usan docker.. usan node instalado en su local.
#115 Pero estás hablando de que va más lento que en linux. Nos ha jodido: Docker en linux va nativo mientras que en los demás entornos va virtualizado, jajaja.
Me refería al uso, que es transparente.
La versión estable es inestable, yo la edge ni con un palo en nada que dé servicio.
Buenas, estoy liado con docker y me ha surgido una duda, a ver si alguien me puede echar un cable.
Tengo dos microservicios y uno de ellos se conecta a la base de datos.
Con docker compose añado los 3 servicios, hago un dump del sql en el container de mysql que crea, pero el microservicio que se debería de conectar a la base de datos, siempre failea.
El microservicio usa un .env para las variables de conexion, he estado buscando y en principio poniendo el nombre del servicio debería conectarse bien, pero nunca lo hace.
Este es el docker compose que tengo, no se si esta fatal o no la verdad xD
version: '3'
services:
core:
container_name: functional-core-local
build: .
command: npm run start:dev
env_file:
- .env
ports:
- '3000:3002'
depends_on:
- mysql
links:
- mysql
mysql:
container_name: ds_server_manager
image: mariadb:latest
environment:
MYSQL_USER: 'mediavida'
MYSQL_ROOT_PASSWORD: 'mediavida'
env_file:
- .env
volumes:
- ./mysql-dump:/docker-entrypoint-initdb.d
- db-data:/var/lib/mysql
volumes:
db-data:
#117 A simple vista parece que está bien.
Ahora mismo no recuerdo si tienes que hacer algo para que el MYSQL_USER de mariadb pueda conectarse desde cualquier host. ¿Qué error te tira al conectarse?
#117 Has intentado hacer ping aunque sea? veo que es JS el backend, como tienes montado la conexión?¿