【问题标题】:Connection refused during migration inside the Docker in Laravel 5.8在 Laravel 5.8 中的 Docker 内部迁移期间连接被拒绝
【发布时间】:2019-04-16 21:06:22
【问题描述】:

在我的 docker 构建期间,我似乎无法进行迁移。

我试过了

docker-compose.yml

version: '3'
services:
  portalmodules:
    build:
      context: .
      dockerfile: Dockerfile
    ports:
      - 8011:8000
    links:
      - database
  database:
    image: postgres:11.2
    ports:
    - "5432:5432"
    expose:
    - "5432"
    environment:
      - "POSTGRES_PASSWORD=12345"
      - "POSTGRES_USER=john"
      - "POSTGRES_DB=api"

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
RUN chmod +x run.sh
RUN cp run.sh /tmp
ENTRYPOINT ["/tmp/run.sh"]

run.sh

#!/bin/sh

php artisan migrate:fresh --seed
php artisan serve --host=0.0.0.0

.env

APP_NAME=API
APP_ENV=local
APP_KEY=base64:Qa3U2oP5IQ93MGEJu61MrcQFRSsS5vQRWUrqYwIplEo=
APP_DEBUG=true
APP_URL=http://1.1.1.1
#---------------------------------------------- DATABASE
DB_CONNECTION=pgsql
DB_HOST=127.0.0.1
DB_PORT=5432
DB_DATABASE=api
DB_USERNAME=john
DB_PASSWORD=12345

我尝试了DB_HOSTlocalhost127.0.0.1database 的 3 个差异值

我一直得到

如何进一步调试?

【问题讨论】:

    标签: laravel docker laravel-5 docker-compose dockerfile


    【解决方案1】:

    正确的DB_HOSTdatabase,因为每个容器都有自己的IP 地址,因此您的数据库不在应用程序的localhost 上。

    请注意,您同时启动了数据库和 laravel 应用程序,因此数据库可能仍在初始化,然后迁移运行,并且连接失败,因为连接数据库为时过早。

    你有一些选择:等到数据库准备好再运行迁移,重试迁移直到它成功,或者使用与 laravel 应用程序相同的图像从不同的服务运行迁移命令(并设置 restart: on-failure 所以迁移容器会重新启动,直到迁移成功)。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-09-24
      • 2020-04-10
      • 2021-06-27
      • 2019-10-20
      • 1970-01-01
      • 2019-09-29
      • 2020-01-24
      • 2018-08-14
      相关资源
      最近更新 更多