Laravel mongodb docker

Tôi đang vật lộn với điều này. Tôi đã theo dõi Khởi động nhanh cho PHP của @Michael_Lynn, nhưng anh ấy đang chạy trên máy tính xách tay dành cho nhà phát triển địa phương

Tôi đang cố sao chép bằng Docker container. Tôi nghĩ rằng mình đã có nó khi CHỈ yêu cầu tiện ích mở rộng MongoDB, vì tôi phải thay đổi (mã hóa cứng) một số giá trị thành version: '2' services: php: image: redswitch/php-mongodb:8.0-1.9.0-3 container_name: php volumes: - ./html:/var/www/html restart: always environment: - VIRTUAL_HOST=www.domain.com - LETSENCRYPT_HOST=www.domain.com - LETSENCRYPT_EMAIL=admin@domain.com - "TZ=Europe/London" ports: - 80 expose: - 80 restart: unless-stopped composer: image: composer:2.0 command: ["composer", "install"] volumes: - ./html:/app networks: default: external: name: nginx-proxy-net 6. Nhưng bây giờ tôi cần gói version: '2' services: php: image: redswitch/php-mongodb:8.0-1.9.0-3 container_name: php volumes: - ./html:/var/www/html restart: always environment: - VIRTUAL_HOST=www.domain.com - LETSENCRYPT_HOST=www.domain.com - LETSENCRYPT_EMAIL=admin@domain.com - "TZ=Europe/London" ports: - 80 expose: - 80 restart: unless-stopped composer: image: composer:2.0 command: ["composer", "install"] volumes: - ./html:/app networks: default: external: name: nginx-proxy-net 7 tiếp theo, gói version: '2' services: php: image: redswitch/php-mongodb:8.0-1.9.0-3 container_name: php volumes: - ./html:/var/www/html restart: always environment: - VIRTUAL_HOST=www.domain.com - LETSENCRYPT_HOST=www.domain.com - LETSENCRYPT_EMAIL=admin@domain.com - "TZ=Europe/London" ports: - 80 expose: - 80 restart: unless-stopped composer: image: composer:2.0 command: ["composer", "install"] volumes: - ./html:/app networks: default: external: name: nginx-proxy-net 8 phá vỡ cấu hình ở trên

Ngay bây giờ, cách gần nhất tôi có được là sử dụng Docker Image của chính khách hàng của mình với

FROM php:8.0-apache RUN apt-get update -y && apt-get upgrade -y && apt-get install git libssl-dev -y RUN pecl install mongodb && docker-php-ext-enable mongodb RUN echo "extension=mongodb.so" >> /usr/local/etc/php/php.ini COPY --from=composer /usr/bin/composer /usr/bin/composer EXPOSE 80 443

Điều này được triển khai dưới dạng một vùng chứa với cấu hình version: '2' services: php: image: redswitch/php-mongodb:8.0-1.9.0-3 container_name: php volumes: - ./html:/var/www/html restart: always environment: - VIRTUAL_HOST=www.domain.com - LETSENCRYPT_HOST=www.domain.com - LETSENCRYPT_EMAIL=admin@domain.com - "TZ=Europe/London" ports: - 80 expose: - 80 restart: unless-stopped composer: image: composer:2.0 command: ["composer", "install"] volumes: - ./html:/app networks: default: external: name: nginx-proxy-net 9 sau

version: '2' services: php: image: redswitch/php-mongodb:8.0-1.9.0-3 container_name: php volumes: - ./html:/var/www/html restart: always environment: - VIRTUAL_HOST=www.domain.com - LETSENCRYPT_HOST=www.domain.com - LETSENCRYPT_EMAIL=admin@domain.com - "TZ=Europe/London" ports: - 80 expose: - 80 restart: unless-stopped composer: image: composer:2.0 command: ["composer", "install"] volumes: - ./html:/app networks: default: external: name: nginx-proxy-net

Trong thư mục { "require": { "mongodb/mongodb": "^1.9.0-alpha1", "vlucas/phpdotenv": "^5.3.0" } } 0 là { "require": { "mongodb/mongodb": "^1.9.0-alpha1", "vlucas/phpdotenv": "^5.3.0" } } 1

{ "require": { "mongodb/mongodb": "^1.9.0-alpha1", "vlucas/phpdotenv": "^5.3.0" } }

Tôi đã thử các phiên bản tối thiểu khác nhau, chẳng hạn như version: '2' services: php: image: redswitch/php-mongodb:8.0-1.9.0-3 container_name: php volumes: - ./html:/var/www/html restart: always environment: - VIRTUAL_HOST=www.domain.com - LETSENCRYPT_HOST=www.domain.com - LETSENCRYPT_EMAIL=admin@domain.com - "TZ=Europe/London" ports: - 80 expose: - 80 restart: unless-stopped composer: image: composer:2.0 command: ["composer", "install"] volumes: - ./html:/app networks: default: external: name: nginx-proxy-net 0 , version: '2' services: php: image: redswitch/php-mongodb:8.0-1.9.0-3 container_name: php volumes: - ./html:/var/www/html restart: always environment: - VIRTUAL_HOST=www.domain.com - LETSENCRYPT_HOST=www.domain.com - LETSENCRYPT_EMAIL=admin@domain.com - "TZ=Europe/London" ports: - 80 expose: - 80 restart: unless-stopped composer: image: composer:2.0 command: ["composer", "install"] volumes: - ./html:/app networks: default: external: name: nginx-proxy-net 1 và các phiên bản trên. Điều này cung cấp các phương sai của cùng một thông báo lỗi tùy thuộc vào phiên bản nào được chỉ định trong tệp { "require": { "mongodb/mongodb": "^1.9.0-alpha1", "vlucas/phpdotenv": "^5.3.0" } } 1

Công-ten-nơ version: '2' services: php: image: redswitch/php-mongodb:8.0-1.9.0-3 container_name: php volumes: - ./html:/var/www/html restart: always environment: - VIRTUAL_HOST=www.domain.com - LETSENCRYPT_HOST=www.domain.com - LETSENCRYPT_EMAIL=admin@domain.com - "TZ=Europe/London" ports: - 80 expose: - 80 restart: unless-stopped composer: image: composer:2.0 command: ["composer", "install"] volumes: - ./html:/app networks: default: external: name: nginx-proxy-net 7 khởi động và dừng, như mong đợi. Đây là nhật ký của container

No composer.lock file present. Updating dependencies to latest instead of installing from lock file. See //getcomposer.org/install for more information., Loading composer repositories with package information, Updating dependencies, Your requirements could not be resolved to an installable set of packages., , Problem 1, - Root composer.json requires mongodb/mongodb ^1.9.0-alpha1 -> satisfiable by mongodb/mongodb[1.9.0-alpha1]., - mongodb/mongodb 1.9.0-alpha1 requires ext-mongodb ^1.10.0 -> it is missing from your system. Install or enable PHP's mongodb extension., , To enable extensions, verify that they are enabled in your .ini files:, - /usr/local/etc/php/php-cli.ini, - /usr/local/etc/php/conf.d/docker-php-ext-sodium.ini, - /usr/local/etc/php/conf.d/docker-php-ext-zip.ini, You can also run `php --ini` inside terminal to see which files are used by PHP in CLI mode.,

Kiểm tra vùng chứa version: '2' services: php: image: redswitch/php-mongodb:8.0-1.9.0-3 container_name: php volumes: - ./html:/var/www/html restart: always environment: - VIRTUAL_HOST=www.domain.com - LETSENCRYPT_HOST=www.domain.com - LETSENCRYPT_EMAIL=admin@domain.com - "TZ=Europe/London" ports: - 80 expose: - 80 restart: unless-stopped composer: image: composer:2.0 command: ["composer", "install"] volumes: - ./html:/app networks: default: external: name: nginx-proxy-net 4 bằng lệnh gọi version: '2' services: php: image: redswitch/php-mongodb:8.0-1.9.0-3 container_name: php volumes: - ./html:/var/www/html restart: always environment: - VIRTUAL_HOST=www.domain.com - LETSENCRYPT_HOST=www.domain.com - LETSENCRYPT_EMAIL=admin@domain.com - "TZ=Europe/London" ports: - 80 expose: - 80 restart: unless-stopped composer: image: composer:2.0 command: ["composer", "install"] volumes: - ./html:/app networks: default: external: name: nginx-proxy-net 5, tôi có thể thấy rằng tiện ích mở rộng MongoDB v1. 9. 0 được bật, với tệp cấu hình đã tải và cấu hình bổ sung tại

  • /usr/local/etc/php/php. ban đầu
  • /usr/local/etc/php/conf. d/docker-php-ext-mongodb. ini, /usr/local/etc/php/conf. d/docker-php-ext-sodium. ban đầu

Làm thế nào để tôi khắc phục vấn đề này?

Đây có phải là cách chính xác để triển khai PHP+MongoDB+Composer+PHPDotEnv không?

Xin chào @Dan_Burt,

Dan_Burt

Tôi đang cố sao chép bằng Docker container. Tôi nghĩ rằng mình đã có nó khi CHỈ yêu cầu tiện ích mở rộng MongoDB, vì tôi phải thay đổi (mã hóa cứng) một số giá trị thành version: '2' services: php: image: redswitch/php-mongodb:8.0-1.9.0-3 container_name: php volumes: - ./html:/var/www/html restart: always environment: - VIRTUAL_HOST=www.domain.com - LETSENCRYPT_HOST=www.domain.com - LETSENCRYPT_EMAIL=admin@domain.com - "TZ=Europe/London" ports: - 80 expose: - 80 restart: unless-stopped composer: image: composer:2.0 command: ["composer", "install"] volumes: - ./html:/app networks: default: external: name: nginx-proxy-net 6. Nhưng bây giờ tôi cần gói version: '2' services: php: image: redswitch/php-mongodb:8.0-1.9.0-3 container_name: php volumes: - ./html:/var/www/html restart: always environment: - VIRTUAL_HOST=www.domain.com - LETSENCRYPT_HOST=www.domain.com - LETSENCRYPT_EMAIL=admin@domain.com - "TZ=Europe/London" ports: - 80 expose: - 80 restart: unless-stopped composer: image: composer:2.0 command: ["composer", "install"] volumes: - ./html:/app networks: default: external: name: nginx-proxy-net 7 tiếp theo, gói version: '2' services: php: image: redswitch/php-mongodb:8.0-1.9.0-3 container_name: php volumes: - ./html:/var/www/html restart: always environment: - VIRTUAL_HOST=www.domain.com - LETSENCRYPT_HOST=www.domain.com - LETSENCRYPT_EMAIL=admin@domain.com - "TZ=Europe/London" ports: - 80 expose: - 80 restart: unless-stopped composer: image: composer:2.0 command: ["composer", "install"] volumes: - ./html:/app networks: default: external: name: nginx-proxy-net 8 phá vỡ cấu hình ở trên

Nhìn thoáng qua, có vẻ như vấn đề liên quan đến tệp version: '2' services: php: image: redswitch/php-mongodb:8.0-1.9.0-3 container_name: php volumes: - ./html:/var/www/html restart: always environment: - VIRTUAL_HOST=www.domain.com - LETSENCRYPT_HOST=www.domain.com - LETSENCRYPT_EMAIL=admin@domain.com - "TZ=Europe/London" ports: - 80 expose: - 80 restart: unless-stopped composer: image: composer:2.0 command: ["composer", "install"] volumes: - ./html:/app networks: default: external: name: nginx-proxy-net 9. Điều này là do không có tệp hiện có tên là { "require": { "mongodb/mongodb": "^1.9.0-alpha1", "vlucas/phpdotenv": "^5.3.0" } } 0 khi bạn xây dựng { "require": { "mongodb/mongodb": "^1.9.0-alpha1", "vlucas/phpdotenv": "^5.3.0" } } 1

Có vẻ như dòng mới { "require": { "mongodb/mongodb": "^1.9.0-alpha1", "vlucas/phpdotenv": "^5.3.0" } } 2 vừa được thêm vào một tệp trống. Tôi nghĩ những gì bạn muốn làm thay vào đó là nối thêm dòng vào { "require": { "mongodb/mongodb": "^1.9.0-alpha1", "vlucas/phpdotenv": "^5.3.0" } } 3 và đổi tên/sao chép tệp thành version: '2' services: php: image: redswitch/php-mongodb:8.0-1.9.0-3 container_name: php volumes: - ./html:/var/www/html restart: always environment: - VIRTUAL_HOST=www.domain.com - LETSENCRYPT_HOST=www.domain.com - LETSENCRYPT_EMAIL=admin@domain.com - "TZ=Europe/London" ports: - 80 expose: - 80 restart: unless-stopped composer: image: composer:2.0 command: ["composer", "install"] volumes: - ./html:/app networks: default: external: name: nginx-proxy-net 9

Hy vọng rằng điều đó sẽ hữu ích, nếu bạn có thêm câu hỏi liên quan đến chính tiện ích mở rộng MongoDB PHP, bạn có thể vui lòng cung cấp một môi trường Docker tối thiểu không? . e. trừ docker-compose

Ngoài ra, hãy xem một ví dụ tại get-started-php/Dockerfile. Tệp này là một phần của dự án get-started-php, sử dụng các vùng chứa như một cách để khởi động môi trường học tập. Xem thêm "Bắt đầu" với chủ đề MongoDB Atlas

Dan_Burt

Tôi đã thử các phiên bản tối thiểu khác nhau, chẳng hạn như version: '2' services: php: image: redswitch/php-mongodb:8.0-1.9.0-3 container_name: php volumes: - ./html:/var/www/html restart: always environment: - VIRTUAL_HOST=www.domain.com - LETSENCRYPT_HOST=www.domain.com - LETSENCRYPT_EMAIL=admin@domain.com - "TZ=Europe/London" ports: - 80 expose: - 80 restart: unless-stopped composer: image: composer:2.0 command: ["composer", "install"] volumes: - ./html:/app networks: default: external: name: nginx-proxy-net 0 , version: '2' services: php: image: redswitch/php-mongodb:8.0-1.9.0-3 container_name: php volumes: - ./html:/var/www/html restart: always environment: - VIRTUAL_HOST=www.domain.com - LETSENCRYPT_HOST=www.domain.com - LETSENCRYPT_EMAIL=admin@domain.com - "TZ=Europe/London" ports: - 80 expose: - 80 restart: unless-stopped composer: image: composer:2.0 command: ["composer", "install"] volumes: - ./html:/app networks: default: external: name: nginx-proxy-net 1 và các phiên bản trên

Điều này không liên quan trực tiếp đến sự cố bạn đang gặp phải, mặc dù xin lưu ý rằng phần mở rộng MongoDB PHP phiên bản 1. 9. 1 hiện đã có ( MongoDB PHP Extension 1. 9. 1 Đã phát hành )

Chủ đề