抱歉,如果這很明顯,我對 docker 還是很陌生...
我只想將帶有 laravel 應用程式的容器連接到 postgres 容器
我的Dockerfilelaravel 應用程式是:
FROM php:7.4-fpm
RUN apt-get update && apt-get install -y libpq-dev
RUN docker-php-ext-install pdo pdo_pgsql pgsql
RUN curl -sS https://getcomposer.org/installer | php -- --install-dir=/usr/local/bin --filename=composer
WORKDIR /app
COPY . /app
RUN composer install
CMD php artisan serve --host=0.0.0.0 --port=8181
EXPOSE 8181
這個運行良好的容器沒有問題
我docker-compose.yml是這樣的:
version: '3'
services:
laravel:
container_name: app
build:
context: .
dockerfile: Dockerfile
environment:
- DB_CONNECTION=pgsql
- DB_HOST=localhost
- DB_PORT=5432
- DB_DATABASE=postgres
- DB_USERNAME=postgres
- DB_PASSWORD=postgres
volumes:
- .:/var/www/app
- ./vendor:/var/www/app/vendor
ports:
- '8181:8181'
command: bash -c "php artisan migrate"
depends_on:
- db
links:
- db
db:
image: postgres
container_name: postgres_database
restart: always
environment:
- POSTGRES_USER=postgres
- POSTGRES_PASSWORD=postgres
- POSTGRES_DB=postgres
ports:
- '5432:5432'
volumes:
- db:/var/lib/postgresql/data
volumes:
db:
driver: local
當我運行docker-compose up遷移命令時出現問題:我得到一個QueryException: could not find driver (SQL: select * from information_schema.tables where table_schema = public and table_name = migrations and table_type = 'BASE TABLE')
如果我洗掉command: bash -c "php artisan migrate"docker-compose 檔案中的行,一切正常,我可以使用資料庫客戶端連接到我的資料庫
有人知道發生了什么嗎?
非常感謝 !!!
uj5u.com熱心網友回復:
檔案app/config/database.php可能仍然參考錯誤的一個(默認)MySQL 驅動程式。
我建議sed在嘗試運行遷移之前使用 , 來編輯檔案。
uj5u.com熱心網友回復:
隨著專案的發展,我經常會偶然發現這些小配置問題,因此我選擇安裝 Laradock 來為我完成這項作業。所以我強烈推薦它。
https://laradock.io/getting-started/
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/418175.html
標籤:
