docker configuration docker-compose

¿Cómo configuro docker compose para exponer los puertos correctamente?



configuration docker-compose (1)

Con boot2docker (en Mac o Windows), para acceder a cualquier puerto desde localhost , debe configurar su VM VirtualBox para reenviar ese puerto desde la VM al host.

Sus asignaciones de puertos son correctas, pero aún necesita hacer visible para su host (Mac) el único puerto al que desea acceder desde localhost (su Mac).

Consulte, por ejemplo, " Uso de boot2docker para ejecutar Docker en una Mac o Windows " de Andrew Odewahn :

De esa manera, no tiene que averiguar cuál es la IP de su máquina.
(Lo que puede ver con docker-machine ls seguido de docker-machine ip <name> )

Estoy usando docker y docker compose para ejecutar una aplicación clojure y un nodo, junto con postgres.

El proyecto está contenido en la siguiente estructura de carpetas.

project/ -- app/ -- -- Dockerfile -- frontend/ -- -- /Dockerfile -- docker-compose.yml

La app/Dockerfile ve así ...

FROM clojure:latest COPY . /usr/src/app WORKDIR /usr/src/app EXPOSE 9000 CMD ["lein", "run", "migrate", "&&","lein", "run"]

El frontend/Dockerfile ve así ...

FROM node:5 COPY . /usr/src/app WORKDIR /usr/src/app RUN npm install EXPOSE 8080 CMD ["npm", "start"]

Y, por último, el docker-compose.yml se parece a ...

frontend: image: bradcypert/node volumes: - ./frontend:/usr/src/frontend ports: - "8080:8080" backend: image: bradcypert/clojure volumes: - ./app:/usr/src/backend ports: - "9000:9000" links: - postgres postgres: image: postgres ports: - "5432:5432"

el backend falla por un motivo diferente, pero la interfaz parece funcionar correctamente, dicho esto, no puedo acceder a localhost: 8080 y ver la aplicación. ¿Qué necesito hacer para que esto suceda?

Gracias por adelantado.

Solo para aclarar, el comando que se ejecuta es docker-compose up