第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

Docker + Laravel 問題 [SQLSTATE[HY000] [2002]

Docker + Laravel 問題 [SQLSTATE[HY000] [2002]

PHP
繁華開滿天機 2022-07-29 10:15:09
我在 ubuntu 機器上安裝了 docker,我正在嘗試運行一個 laravel 應(yīng)用程序。MySQL 服務(wù)service_name: mysql在 docker-compose.yml 文件和 .env 文件中有DB_HOST=mysql.我記得 .env 文件應(yīng)該指出DB_HOST=mysql指向 mysql docker 服務(wù) IP。然而這并沒有發(fā)生,在運行遷移后我得到:Illuminate\Database\QueryException  : SQLSTATE[HY000] [2002] php_network_getaddresses: getaddrinfo failed: Temporary failure in name resolution (SQL: SHOW FULL TABLES WHERE table_type = 'BASE TABLE')首先我跑了docker-compose build,然后我跑了,我docker-compose up -d所有的 3 個服務(wù)都啟動并運行了。如果我提取 MySQL 服務(wù)的 IP 并在這樣的.env文件中使用它:DB_HOST=172.18.0.2然后我可以成功運行遷移,在這種情況下一切正常。但是,我認為這是不好的做法,因為如果重新啟動 MySQL 服務(wù),IP 地址可能會更改。我在這里遺漏了什么,為什么service_name在我的.env文件中使用DB_HOST無法解析數(shù)據(jù)庫主機名?碼頭工人-compose.yml:version: '3'networks:  laravel:services:  nginx:    image: nginx:stable-alpine    container_name: nginx    ports:      - "8080:80"    volumes:      - ./src:/var/www/html      - ./nginx/default.conf:/etc/nginx/conf.d/default.conf    depends_on:      - php      - mysql    networks:      - laravel  mysql:    image: mysql:5.7.22    container_name: mysql    restart: unless-stopped    tty: true    ports:       - "3306:3306"    volumes:       - ./mysql:/var/lib/mysql    environment:      MYSQL_DATABASE: laraone      MYSQL_USER: laraone_user      MYSQL_PASSWORD: secret      MYSQL_ROOT_PASSWORD: secret      SERVICE_TAGS: dev      SERVICE_NAME: mysql    networks:      - laravel  php:    build:      context: .      dockerfile: Dockerfile    container_name: php    volumes:       - ./src:/var/www/html    depends_on:      - mysql    ports:      - "9000:9000"    networks:      - laravel
查看完整描述

3 回答

?
慕少森

TA貢獻2019條經(jīng)驗 獲得超9個贊

我認為您嘗試在 php docker 容器之外運行“php artisan migrate”命令。


您應(yīng)該在 php 容器中運行 php artisan migrate 命令。


嘗試關(guān)注;


docker ps --> list running containers


docker exec -it <your_container_id> bash

現(xiàn)在你可以跑了;


php artisan migrate

編輯:您也可以在不輸入容器 bash 的情況下編寫工匠命令,如下所示;


docker exec -i <your_container_id> php artisan migrate


查看完整回答
反對 回復(fù) 2022-07-29
?
郎朗坤

TA貢獻1921條經(jīng)驗 獲得超9個贊

對于仍然想要 dockerized Laravel 環(huán)境的任何人,請查看 Laravel Sail。它使您可以使用 alias 輕松地將命令路由到 docker 實例sail。喜歡sail artisan migrate。

https://laravel.com/docs/8.x/sail

Laravel Sail 是一個輕量級的命令行界面,用于與 Laravel 的默認 Docker 開發(fā)環(huán)境進行交互。Sail 為使用 PHP、MySQL 和 Redis 構(gòu)建 Laravel 應(yīng)用程序提供了一個很好的起點,而無需之前的 Docker 經(jīng)驗。


查看完整回答
反對 回復(fù) 2022-07-29
?
慕森王

TA貢獻1777條經(jīng)驗 獲得超3個贊

我通過在 php 容器中安裝 laravel 應(yīng)用程序解決了這個問題。簡單的 1 行命令幫助我解決了這個問題:docker exec -it php php artisan app:install



查看完整回答
反對 回復(fù) 2022-07-29
  • 3 回答
  • 0 關(guān)注
  • 342 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號