Quản lý Magento / Nhà soạn nhạc / Triển khai


18

Vì vậy, tôi rất thích sử dụng trình cài đặt hackathon Magento Composer, nhưng tôi đang cố gắng hiểu cách người khác sử dụng nó liên quan đến một dịch vụ triển khai. Hiện tại tôi đang sử dụng DeployHQ và vâng, tôi có thể thiết lập nó để triển khai và chạy trình soạn thảo khi có bản cập nhật cho repo, nhưng điều này không có ý nghĩa với tôi bây giờ.

Repo nhà soạn nhạc chính của tôi, chỉ chứa tệp json của tất cả các gói tôi muốn đưa vào bản dựng của mình, chỉ được cập nhật khi tôi thêm gói mới vào danh sách.

Khi tôi cập nhật chủ đề hoặc tiện ích mở rộng tùy chỉnh (được tham chiếu trong tệp json), không có "móc" để cập nhật dịch vụ triển khai của tôi. Vì vậy, tôi phải đăng nhập vào máy chủ của mình và chạy trình soạn nhạc theo cách thủ công (sẽ gỡ trang web xuống cho đến khi hoàn thành).

Vậy làm thế nào để người khác quản lý điều này? Tôi có nên chỉ chạy trình soạn nhạc cục bộ và bao gồm thư mục nhà cung cấp trong repo của mình không?

Bất kỳ câu trả lời sẽ được đánh giá rất cao.


4
Tôi đang bỏ phiếu để đóng câu hỏi này ngoài chủ đề vì đó là về Nhà soạn nhạc.
mbalparda

1
Xin chào, cụ thể, nó liên quan đến việc sử dụng Magento với nhà soạn nhạc và cụ thể hơn là chức năng hackathon Magento. Vì vậy, tôi nghĩ rằng bạn đã hơi sớm về điều đó xin lỗi!
James ALLwood

Nó thực sự phức tạp để giải thích, nhưng tôi sẽ thử: vì tôi nghĩ câu hỏi này không liên quan đến Magento và bạn nghĩ nó là vậy, tôi đã đánh dấu nó là Off topic. Nếu một người điều hành hoặc 4 thành viên khác quyết định thì nó sẽ bị đóng. Nếu không, nó sẽ vẫn mở. Tin nhắn là tự động khi bạn đánh dấu câu hỏi là lạc đề. Và nó chắc chắn lạc đề vì chủ đề chính là nhà soạn nhạc, gắn liền với Magento nhưng nó có thể được áp dụng cho bất kỳ cài đặt phần mềm nào khác và nó có thể thuộc về một trang web về máy chủ / triển khai chứ không phải trong Magento SE.
mbalparda

1
Các bạn, câu hỏi này đã nhận được 2 lượt bình chọn và yêu thích. Chắc chắn cho phép ai đó trả lời câu hỏi này có thể làm hại không? Nó sẽ giúp những người khác trong cộng đồng
MAGENTO

@James ALLwood bạn đã làm thế nào với điều này?
jharrison.au

Câu trả lời:


13

Tôi đã thiết lập một cấu trúc tại cơ quan của chúng tôi cho phép chúng tôi sử dụng Trình soạn thảo để triển khai tất cả các trang web Magento của chúng tôi. Đây có thể là một chút quá mức cho câu hỏi bạn đã hỏi nhưng đây là một tổng quan cơ bản về cấu trúc:

Cấu trúc kho lưu trữ

Dưới đây là cấu trúc thư mục của kho lưu trữ 'cha mẹ'. Nó chứa JSON của trình soạn thảo và các tệp khóa và cấu hình khác cần thiết để triển khai.

- code
   - magento
- deployment
- environmental
   - local
       - local.xml
       - robots.txt
   - staging
       - local.xml
       - robots.txt
   - production
       - local.xml
       - robots.txt
- provisioning
- public
   - index.php
- vendor
- composer.json
- composer.lock
  • Tất cả các tùy chỉnh dành riêng cho khách hàng được lưu trữ trong một mô-đun "tùy chỉnh" riêng biệt được cài đặt bằng Trình soạn thảo
  • Lõi Magento được bao gồm dưới dạng mô đun con Git ( code/magento)
  • Một index.phpthư mục tùy chỉnh và các thư mục khác như phương tiện và lỗi nằm bên trong thư mục công cộng bên ngoài thư mục gốc Magento
  • Các tệp cụ thể về môi trường (local.xml, robot.txt, v.v.) được liên kết với nhau trong thư mục gốc Magento trong quá trình triển khai
  • Thư mục nhà cung cấp được loại trừ khỏi Git, nhưng tệp composer.lock được bao gồm.

Triển khai

  • Chúng tôi triển khai bằng Capsitrano , cho phép nhiều máy chủ và môi trường ứng dụng (dàn / sản xuất)
  • Capistrano xây dựng toàn bộ cơ sở mã trên máy chủ trong một thư mục mới và sau đó hoán đổi liên kết tượng trưng webroot ở cuối cùng có nghĩa là không có thời gian chết cho trang web của bạn.
  • Capistrano chạy composer installtrong quá trình xây dựng và triển khai tất cả các mô-đun vào mô hình con Magento.

Đây vẫn không phải là một thiết lập tích hợp liên tục nhưng tôi thấy nó hoạt động tốt cho các trang web Magento. Vui lòng gửi cho tôi một tin nhắn nếu bạn muốn thêm một số lời khuyên cụ thể cho thiết lập của bạn.


1
đó là câu trả lời cũ và cũ, nhưng hy vọng bạn có thể trả lời nó. 1 Việc lưu trữ localDB không phải là vấn đề bảo mật? 2 Ở giai đoạn nào và làm thế nào để bạn nhập cơ sở dữ liệu?
MployBy

5

Một phương pháp khác là sử dụng chiến lược triển khai sao chép hackento magento, trông giống như thế này trong tệp composer.json của bạn:

"extra": {
    "magento-root-dir": "./",
    "magento-deploystrategy": "copy",
    "magento-force": true
}

Sử dụng phương pháp trên sao chép các tệp đã cài đặt từ nhà cung cấp sang cài đặt thực tế, cho phép nó được cam kết trong Git và được triển khai như bình thường, mà không phải thực hiện bất kỳ cài đặt nào của nhà soạn nhạc.

Tôi không phải là một fan hâm mộ lớn của việc rút khỏi kho lưu trữ của bên thứ ba khi bạn chuẩn bị triển khai trực tiếp và việc phụ thuộc vào kho lưu trữ của bên thứ ba là khá rủi ro, trừ khi bạn có một loại bộ đệm proxy cho mạng của mình .

Đọc bài viết này và nó sẽ cung cấp cho bạn một góc nhìn khác: http://www.letscodejavascript.com/v3/blog/2014/03/the_npm_debacle

Về cơ bản, NPM đã ngừng hoạt động (loại ..) và các hệ thống xây dựng của mọi người đã ngừng hoạt động (đối với các triển khai quan trọng!) Vì chúng trực tiếp phụ thuộc vào NPM. (NPM giống như Packagist cho Javascript, ngoại trừ NPM thực sự lưu trữ tệp và Packagist chỉ trỏ đến kho lưu trữ mô-đun Github - sửa tôi nếu tôi sai)

chỉnh sửa: chỉ phản ứng của fschmengler đỏ .. Đây là một chi tiết về cách tiếp cận đầu tiên của anh ấy


4

Điều quan trọng là phải hiểu rằng Trình soạn thảo không phải là một công cụ triển khai, mà là một công cụ phát triển.

Có nhiều cách tiếp cận khác nhau để chuẩn bị triển khai với tất cả các phụ thuộc:

  • cam kết thư mục nhà cung cấp (hoặc bất cứ nơi nào nhà soạn nhạc cài đặt các nguồn) vào kho dự án
  • sử dụng một máy chủ xây dựng chạy composer installvà tạo một kho lưu trữ với kết quả, mà bạn có thể triển khai lặp lại cho các hệ thống đích khác nhau
    • chạy composer installtrên máy chủ và sau đó chuyển đổi liên kết tượng trưng theo đề xuất của @ jharrison.au là một biến thể của liên kết này

Ngoài ra, tôi không khuyên bạn nên sử dụng trình soạn thảo cho mỗi mô-đun duy nhất và chỉ giữ composer.jsoncomposer.lock trong kho dự án. Điều này là làm quá nó và làm cho sự phát triển không cần thiết phức tạp. Nó có ý nghĩa hoàn hảo cho mã được sử dụng lại trong một số dự án nhưng tại sao bạn lại đặt mã cụ thể của dự án vào các kho riêng biệt?

Cấu trúc dự án hiện tại của tôi trông như thế này (sử dụng trình cài đặt trình soạn thảo thay thế của AOE ):

  • srcchứa tất cả các mô-đun cụ thể của dự án. Trình soạn thảo cũng cài đặt bất kỳ mô-đun Magento nào khác tại đây
  • .modmanliên kết đến srcđể modman có thể xử lý liên kết tượng trưng một cách dễ dàng
  • wwwlà webroot. Nhà soạn nhạc cài đặt lõi Magento tại đây

Bằng cách này, tôi bao gồm các mô-đun bên ngoài trong kho lưu trữ. Nếu bạn không muốn làm như vậy, điều chỉnh nó như thế này:

  • srcchứa tất cả các mô-đun cụ thể của dự án. Để đưa chúng vào .modmanđể modman tạo liên kết tượng trưng, ​​hãy sử dụngmodman link
  • .modmanlà trong .gitignore. Nhà soạn nhạc cài đặt các mô-đun Magento tại đây
  • wwwlà webroot. Nhà soạn nhạc cài đặt lõi Magento tại đây
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.