Conéctese a una base de datos remota que viva en Docker a través de Mac OS X

cyb3rZ

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:

  • IP: localhost
  • Puerto: 5432
  • A: juan
  • PW: 12345

Seguí recibiendo

¿Cómo se podría proceder y depurar esto más?

Aquisgrán Roberts

Al especificar un puerto en la exposeconfiguració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 portsconfiguració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

Editado en
0

Déjame decir algunas palabras

0Comentarios
Iniciar sesiónRevisión de participación posterior

Artículos relacionados

Conéctese a una base de datos .sql alojada en Google Drive a través de Colab Notebook

Conéctese a una base de datos .sql alojada en Google Drive a través de Colab Notebook

Conéctese a una base de datos local de Oracle (LOCALHOST) desde otro sistema que esté conectado a través de lan

Conéctese a una base de datos diferente en django shell

Cómo conectarse a una base de datos PostgreSQL remota a través de SSL con Python

usando smart_open en una base de datos grande conéctese para escribir en s3 con python

Conéctese directamente a través de una instancia en C #

Conéctese a una base de datos MySQL con certificados SSL en C # .NET Core 3

Conexiones de ReliableDbProvider en una base de datos remota que no es Azure

¿Cómo conectarse a una base de datos MySQL a través de un cliente en Mac?

¿Cómo conectarse a una base de datos MySQL a través de un cliente en Mac?

Instale MySQL y cree una base de datos en Mac OS X Yosemite

¿Cómo conectarse a una base de datos MySQL remota a través de SSL usando Play Framework?

Conéctese a una base de datos usando DBplyr

Conéctese al contenedor Docker SQL Server 2017 en MAC OSX a través de SQL Operations Studio

Conéctese automáticamente después de que la base de datos finalice la recuperación

Conéctese a la base de datos MySQL a través de dplyr usando credenciales almacenadas

Conéctese a la base de datos local en otras computadoras

Conéctese a la base de datos MySQL en PHP

Una forma más segura de conectarse a la base de datos remota en las aplicaciones

Tuberías con nombre en la carpeta contenedora de Docker montadas en el sistema de archivos mac os x a través de boot2docker

¿Cómo puedo guardar el resultado de la transmisión en una base de datos remota a través de REST o cualquier cosa fácilmente?

Conéctese a Mysql de forma remota en centos 6.x server LAMP

Cómo ejecutar una consulta "insertar en" en una base de datos remota con channel.connect ();

Cómo trabajar con una base de datos relacionada a partir de datos pasados a través de Axios en Vuejs

Conéctese a Aws RDS en una subred privada a través de toad

Conéctese a una base de datos local de SQL Server con sequelize

Conéctese a una base de datos de Oracle con doctrine usando OID LDAP

Cómo iterar a través de los niños en la base de datos y aplicarlos a una variable

TOP Lista

CalienteEtiquetas

Archivo