Trong hướng dẫn này, tôi sẽ chỉ cho bạn cách thiết lập quy trình triển khai liên tục để triển khai ứng dụng Laravel lên nền tảng Heroku với ít rắc rối nhất. Triển khai tự động giúp các nhóm hạn chế sự can thiệp của con người trong quá trình triển khai, giảm rủi ro lỗi và hợp lý hóa toàn bộ quy trình phát hành phần mềm
điều kiện tiên quyết
Đối với bài đăng này, bạn sẽ cần
- Hiểu biết về PHP và Laravel
- PHP7. 4 trở lên, tốt nhất là PHP 8
- Git
- Trình soạn nhạc được cài đặt trên máy tính của bạn
- MySQL được cài đặt trên máy tính của bạn
- Tài khoản GitHub
- Tài khoản CircleCI
- Tài khoản Heroku
Các hướng dẫn của chúng tôi không dựa trên nền tảng, nhưng hãy sử dụng CircleCI làm ví dụ. Nếu bạn chưa có tài khoản CircleCI, hãy đăng ký một tài khoản miễn phí tại đây
Bắt đầu
Để bắt đầu, hãy sao chép ứng dụng Tác giả được tạo bằng Laravel. Với ứng dụng này, bạn có thể tạo danh sách các tác giả bằng cách nêu rõ tên người dùng name
, email
, github
và
cd laravel-heroku-app
composer install
0 của họ. Từ thiết bị đầu cuối, nhập lệnh này để tải xuống dự ángit clone --single-branch --branch template //github.com/CIRCLECI-GWP/laravel-heroku-app.git laravel-heroku-app
Di chuyển vào ứng dụng, cài đặt các phụ thuộc của nó và tạo khóa ứng dụng
cd laravel-heroku-app
composer install
Tiếp theo, tạo tệp
cd laravel-heroku-app
composer install
1 và tạo khóa ứng dụng bằng các lệnh nàycp .env.example .env
php artisan key:generate
Chạy ứng dụng cục bộ
Chạy ứng dụng cục bộ xác nhận rằng nó đang hoạt động như mong đợi. Tuy nhiên, trước tiên, hãy cập nhật thông tin đăng nhập cơ sở dữ liệu
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=YOUR_DATABASE_NAME
DB_USERNAME=YOUR_DATABASE_USERNAME
DB_PASSWORD=YOUR_DATABASE_PASSWORD
Thay thế
cd laravel-heroku-app
composer install
2, cd laravel-heroku-app
composer install
3 và cd laravel-heroku-app
composer install
4 bằng các giá trị bạn định sử dụngTiếp theo, tạo bảng cơ sở dữ liệu và chạy ứng dụng
php artisan migrate
php artisan serve
Truy cập
cd laravel-heroku-app
composer install
5 để xem trang chủ của ứng dụngNhấn vào Tác giả để xem danh sách tác giả. Nếu không có tác giả nào được tạo, khoảng trống bên dưới nhãn cột sẽ trống
Nhấp vào Tạo tác giả mới để thêm tác giả mới
Nhập thông tin chi tiết và nhấp vào Gửi
Bây giờ bạn đã xác nhận rằng ứng dụng demo hoạt động, bạn có thể bắt đầu thiết lập triển khai cho Heroku
Tạo ứng dụng trên Heroku
Để tạo ứng dụng trên Heroku, hãy truy cập bảng điều khiển Heroku. Nhấp vào Mới rồi đến Ứng dụng mới. Điền vào biểu mẫu với tên cho ứng dụng của bạn và khu vực của bạn
Sau đó, nhấp vào Tạo ứng dụng. Bạn sẽ được chuyển hướng đến giao diện Triển khai của ứng dụng mới tạo của bạn
Thêm tiện ích ClearDB MySQL
Theo mặc định, Laravel cung cấp hỗ trợ của bên thứ nhất cho năm cơ sở dữ liệu. Để nhất quán, tốt nhất là duy trì cùng một cơ sở dữ liệu MySQL trên Heroku như bạn có cục bộ. Heroku hoạt động theo mặc định với PostgreSQL, nhưng vì dự án hướng dẫn này sử dụng MySQL nên bạn cần cài đặt một tiện ích bổ sung MySQL có tên. Gói miễn phí sẽ hoạt động đủ tốt cho hướng dẫn này
Để cài đặt ClearDB, nhấp vào Tài nguyên, tìm kiếm ClearDB và chọn nó
Chọn gói miễn phí và sau đó nhấp vào Gửi mẫu đơn đặt hàng
Khi quá trình hoàn tất, ClearDB sẽ tạo một chuỗi kết nối và đưa nó vào các biến cấu hình cho ứng dụng
Để cập nhật các biến môi trường khác cho ứng dụng của bạn, hãy nhấp vào Cài đặt, sau đó nhấp vào Hiển thị Biến cấu hình. Sao chép
cd laravel-heroku-app
composer install
6 và dán nó vào nơi bạn có thể dễ dàng trích xuất thông tin đăng nhậpURL cơ sở dữ liệu phải ở định dạng này.
cd laravel-heroku-app
composer install
7. Sử dụng URL cơ sở dữ liệu đã tạo, thêm các biến này
8 bật tắt chế độ debug cho ứng dụng Laravelcd laravel-heroku-app composer install
9 cho biết ứng dụng là cục bộ hay đang sản xuấtcd laravel-heroku-app composer install
0 là khóa ứng dụng được tạo. Bạn có thể sử dụng bản sao từ máy cục bộ của mìnhcp .env.example .env php artisan key:generate
1 chỉ định tên ứng dụngcp .env.example .env php artisan key:generate
2 được sử dụng để nêu URL cho ứng dụng của bạn. Trong trường hợp này, đó là URL cho ứng dụng Heroku của chúng tôicp .env.example .env php artisan key:generate
Bây giờ bạn cần một khóa API. Bạn sẽ sử dụng khóa này với tên ứng dụng để kết nối đường dẫn CircleCI của mình với Heroku. Để lấy khóa API của bạn, hãy mở trang cài đặt tài khoản. Cuộn đến phần khóa API
Nhấp vào nút Reveal và sao chép khóa API. Lưu nó ở đâu đó bạn có thể dễ dàng tìm thấy nó sau này
Thêm tệp cấu hình CircleCI
Trong phần hướng dẫn này, tôi sẽ hướng dẫn bạn cách thêm cấu hình đường ống cho CircleCI. Đối với dự án này, quy trình bao gồm các bước để triển khai ứng dụng của chúng tôi lên Heroku
Tại thư mục gốc của dự án, hãy tạo một thư mục có tên
cp .env.example .env
php artisan key:generate
3. Trong thư mục đó, tạo một tệp có tên cp .env.example .env
php artisan key:generate
4. Trong tệp mới tạo, thêm cấu hình nàyversion: 2.1
orbs:
heroku: circleci/heroku@1.2.6
jobs:
build:
docker:
- image: cimg/php:8.0
steps:
- checkout
# Download and cache dependencies
- restore_cache:
keys:
- v1-dependencies-{{ checksum "composer.json" }}
- run:
name: "Install Dependencies"
command: composer install -n --prefer-dist
- save_cache:
key: v1-dependencies-{{ checksum "composer.json" }}
paths:
- ./vendor
deploy_app:
executor: heroku/default
steps:
- checkout
- heroku/install
- heroku/deploy-via-git:
force: true
- run:
command: |
heroku run --app=${HEROKU_APP_NAME} php artisan migrate --force
workflows:
deploy:
jobs:
- build
- deploy_app
Tệp cấu hình này chỉ định phiên bản CircleCI cho dự án. Phím
cp .env.example .env
php artisan key:generate
5 gọi phiên bản mới nhất của quả cầu Heroku có sẵn tại thời điểm viết. Quả cầu này đã trừu tượng hóa sự phức tạp thường liên quan đến việc thiết lập Heroku CLI. Quả cầu tự động cài đặt nó và sử dụng nó để triển khai ứng dụng cho HerokuCông việc
cp .env.example .env
php artisan key:generate
6 lấy hình ảnh PHP Docker từ sổ đăng ký CircleCI Docker Hub. Mã của bạn được kiểm tra từ kho lưu trữ và các phần phụ thuộc của dự án được cài đặt. Đây sẽ là một nơi tốt để chạy thử nghiệm nếu nó được định cấu hình cho dự án của bạn. Chúng tôi sẽ bỏ qua việc kiểm tra hướng dẫn này và chỉ tập trung vào việc triển khai nền tảng HerokuCông việc
cp .env.example .env
php artisan key:generate
7 đã sử dụng trình thực thi cp .env.example .env
php artisan key:generate
8 để kiểm tra dự án và cài đặt Heroku CLI. Ứng dụng được triển khai và lệnh di chuyển được chạy để tạo cơ sở dữ liệu cho ứng dụng của bạn trên HerokuGhi chú. Chỉ chạy lệnh di chuyển một lần [ở lần triển khai đầu tiên]. Sau đó chỉnh sửa tệp cấu hình để xóa lệnh di chuyển
Tạo hồ sơ
Procfile giúp xác định các loại quy trình và các lệnh sẽ được thực thi để khởi động ứng dụng. Đối với thời gian chạy PHP, bạn có tùy chọn sử dụng Apache2 hoặc Nginx làm máy chủ web để chạy ứng dụng này. Đối với hướng dẫn này, chúng tôi sẽ sử dụng Apache2 để phục vụ ứng dụng của mình. Để thiết lập nó, hãy điều hướng đến thư mục gốc của dự án của bạn, tạo một tệp mới có tên
cp .env.example .env
php artisan key:generate
9 và điền vào tệp nàyweb: vendor/bin/heroku-php-apache2 public/
Lệnh này đặt máy chủ web thành Apache và chỉ định thư mục nơi ứng dụng của bạn sẽ được phục vụ từ đó. Đối với dự án này, đó là thư mục
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=YOUR_DATABASE_NAME
DB_USERNAME=YOUR_DATABASE_USERNAME
DB_PASSWORD=YOUR_DATABASE_PASSWORD
0Tiếp theo, thiết lập kho lưu trữ trên GitHub và liên kết dự án với CircleCI. Xem lại Đẩy dự án của bạn lên GitHub để biết hướng dẫn từng bước
Đăng nhập vào tài khoản CircleCI của bạn. Nếu bạn đã đăng ký bằng tài khoản GitHub của mình, tất cả các kho lưu trữ của bạn sẽ có sẵn trên bảng điều khiển dự án của bạn
Nhấp vào Thiết lập dự án cho dự án
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=YOUR_DATABASE_NAME
DB_USERNAME=YOUR_DATABASE_USERNAME
DB_PASSWORD=YOUR_DATABASE_PASSWORD
1 của bạnBạn sẽ được nhắc ghi tệp cấu hình mới hoặc sử dụng tệp cấu hình hiện có trong dự án của bạn. Chọn tùy chọn hiện có. Nhập tên của nhánh nơi mã của bạn được đặt trên GitHub, sau đó nhấp vào nút Let's Go
Luồng công việc đầu tiên của bạn sẽ bắt đầu chạy nhưng sẽ không thành công
Quá trình triển khai này không thành công vì bạn chưa cung cấp khóa API Heroku của mình. Bạn có thể khắc phục điều đó ngay bây giờ. Nhấp vào nút Cài đặt dự án, sau đó nhấp vào Biến môi trường. Thêm hai biến mới này
2 là tên ứng dụng trong Heroku [DB_CONNECTION=mysql DB_HOST=127.0.0.1 DB_PORT=3306 DB_DATABASE=YOUR_DATABASE_NAME DB_USERNAME=YOUR_DATABASE_USERNAME DB_PASSWORD=YOUR_DATABASE_PASSWORD
3]DB_CONNECTION=mysql DB_HOST=127.0.0.1 DB_PORT=3306 DB_DATABASE=YOUR_DATABASE_NAME DB_USERNAME=YOUR_DATABASE_USERNAME DB_PASSWORD=YOUR_DATABASE_PASSWORD
4 là khóa API Heroku mà bạn đã lấy từ trang cài đặt tài khoảnDB_CONNECTION=mysql DB_HOST=127.0.0.1 DB_PORT=3306 DB_DATABASE=YOUR_DATABASE_NAME DB_USERNAME=YOUR_DATABASE_USERNAME DB_PASSWORD=YOUR_DATABASE_PASSWORD
Chọn Chạy lại quy trình công việc từ Không thành công để chạy lại triển khai Heroku. Lần này, quy trình làm việc của bạn sẽ chạy thành công
Bạn có thể xác nhận điều này từ các lần di chuyển đã áp dụng
Để xác nhận rằng quy trình làm việc của bạn đã thành công, hãy mở ứng dụng mới được triển khai trong trình duyệt của bạn. URL cho ứng dụng của bạn phải ở định dạng này
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=YOUR_DATABASE_NAME
DB_USERNAME=YOUR_DATABASE_USERNAME
DB_PASSWORD=YOUR_DATABASE_PASSWORD
5Phần kết luận
Trong hướng dẫn này, bạn đã học các bước và quy trình cần thiết để thiết lập quy trình triển khai liên tục cho ứng dụng Laravel bằng CircleCI và Heroku. Sử dụng quy trình này đảm bảo chất lượng của việc triển khai các tính năng và giảm đáng kể rủi ro do lỗi của con người ảnh hưởng đến môi trường sản xuất
Tôi hy vọng rằng bạn thấy hướng dẫn này hữu ích. Kiểm tra tại đây trên GitHub để biết mã nguồn hoàn chỉnh cho dự án được xây dựng tại đây. Cho đến lần sau, hãy tận hưởng
Oluyemi là một người đam mê công nghệ với nền tảng về Kỹ thuật Viễn thông. Với mối quan tâm sâu sắc đến việc giải quyết các vấn đề hàng ngày mà người dùng gặp phải, anh ấy đã mạo hiểm lập trình và từ đó đã hướng các kỹ năng giải quyết vấn đề của mình vào việc xây dựng phần mềm cho cả web và di động. Là một kỹ sư phần mềm toàn diện với niềm đam mê chia sẻ kiến thức, Oluyemi đã xuất bản một số bài báo kỹ thuật và bài đăng blog trên một số blog trên khắp thế giới. Là người hiểu biết về công nghệ, sở thích của anh ấy bao gồm thử các ngôn ngữ và khuôn khổ lập trình mới