Estoy en Mac OS X y tengo un docker-compose.yml
version: '3'
services:
portalmodules:
build:
context: .
dockerfile: Dockerfile
ports:
- 8010:8000
links:
- database
database:
image: postgres:11.2
expose:
- "5432"
environment:
- "POSTGRES_PASSWORD=12345"
- "POSTGRES_USER=john"
- "POSTGRES_DB=api"
También tengo un Dockerfile
FROM composer:1.8.5 as build_stage
COPY . /src
WORKDIR /src
RUN composer install
FROM alpine:3.8
RUN apk --no-cache add \
php7 \
php7-mbstring \
php7-session \
php7-openssl \
php7-tokenizer \
php7-json \
php7-pdo \
php7-pdo_pgsql \
php7-pgsql
COPY --from=build_stage /src /src
RUN ls -al
RUN set -x \
addgroup -g 82 -S www-data \
adduser -u 82 -D -S -G www-data www-data
WORKDIR /src
RUN ls -al
RUN chmod -R 777 storage
CMD php artisan serve --host=0.0.0.0
El contenedor parece construirse y comenzar con éxito cuando lo ejecuté docker-compose up
.
Pero cuando intenté conectarme a la base de datos:
Seguí recibiendo
¿Cómo se podría proceder y depurar esto más?
Al especificar un puerto en la expose
configuración, solo abre ese puerto a otros contenedores de Docker en la red de Docker. No estará abierto para conectarse desde su máquina host (OS X).
Desea agregar una ports
configuración que le permita asignar los puertos de la máquina host al contenedor.
database:
image: postgres:11.2
expose:
- "5432"
ports:
- "5432:5432"
environment:
- "POSTGRES_PASSWORD=12345"
- "POSTGRES_USER=john"
- "POSTGRES_DB=api"
Más información en estas útiles preguntas y respuestas de StackOverflow.
Este artículo se recopila de Internet, indique la fuente cuando se vuelva a imprimir.
En caso de infracción, por favor [email protected] Eliminar
Déjame decir algunas palabras