Tôi gặp sự cố với nhà soạn nhạc . Tôi đang làm việc với git trong môi trường địa phương. Tôi là người duy nhất phát triển.Tại sao nhà soạn nhạc loại bỏ các phụ thuộc của tôi khi triển khai?
Khi tôi cần thêm một số phụ thuộc (hoặc cần thay đổi một số phiên bản), tôi chỉnh sửa composer.json và chạy composer install
cục bộ.
Mọi thứ đều ổn.
Sau đó, khi mọi thứ hoạt động tại địa phương, tôi cam kết thay đổi của tôi (bao gồm composer.json và composer.lock) và đẩy đến máy chủ sản xuất của tôi.
Một sau khi nhận được tập lệnh cập nhật nguồn và chạy composer install
trên máy chủ từ xa.
gì được mong đợi:
- Composer nên cài đặt các phụ thuộc mới theo composer.lock tập tin.
- Tôi sẽ rất vui.
gì xảy ra:
- Composer là tức giận:
Cảnh báo: Các tập tin khóa không được cập nhật với những thay đổi mới nhất trong composer.json. Bạn có thể nhận được sự phụ thuộc lỗi thời. Chạy cập nhật để cập nhật chúng.
- Composer loại bỏ tất cả phụ thuộc.
- Sản xuất bị hỏng.
- Tôi bị đau tim
- Tôi phải đăng nhập vào máy chủ của mình qua ssh và chạy
composer update
để mọi thứ hoạt động tốt, nhưng tôi biết rằng không nên sử dụngcomposer update
trên máy chủ sản xuất.
Dưới đây là kết quả của phần này hậu nhận nhà soạn nhạc của:
composer install
Loading composer repositories with package information
Installing dependencies (including require-dev) from lock file
Warning: The lock file is not up to date with the latest changes in composer.json. You may be getting outdated dependencies. Run update to update them.
- Removing guzzle/guzzle (v3.9.3)
- Removing symfony/event-dispatcher (v2.7.1)
- Removing geoip/geoip (v1.15)
- Removing pimple/pimple (v3.0.0)
- Removing cocur/slugify (1.1.x-dev)
- Removing bentools/url (0.2)
- Removing bentools/simplexmlextended (1.2.0)
Generating autoload files
Tôi đang làm gì sai?
Cảm ơn, Bến
OK, tôi sẽ làm theo cách này sau đó. Đối với trường hợp github là xuống, lời khuyên của bạn là gì? – user4994579
Cả Git lẫn Composer đều không phải là công cụ triển khai. Chúng được sử dụng rất nhiều, nhưng điều đó không có nghĩa đó là giải pháp tốt nhất. Nói chung, bạn nên đặt cùng một ZIP hoặc TGZ chứa tất cả các mã cần thiết cho bản cập nhật sản xuất (bao gồm cả mã trong Git cũng như mọi thứ từ Composer), di chuyển nó đến máy sản xuất, giải nén nó, (kiểm tra nó trong một ẩn nơi - tùy chọn), và sau đó chuyển sang nó ngay lập tức.Có những công cụ cho việc này - Capistrano là một trong số đó. Để tránh thời gian ngừng hoạt động của Github và truy cập nhanh hơn, hãy sử dụng Satis để tạo một bản sao phụ thuộc cục bộ mà bạn sử dụng. Chi tiết sẽ đảm bảo một câu hỏi mới. – Sven