Hướng dẫn docker-php-ext-install command not found - lệnh docker-php-ext-install không tìm thấy
PHP 7.2.5 I am having a problem where a command is failing in the middle of my gitlab ci script...
5 6I can't tell for sure if this command is being run on Ubuntu or php5.6 .. It seems like this is being run on Ubuntu given the 7 commands. But is the 8 command supposed to be executed from the Ubuntu shell?How should I aim to fix this problem? PHP 7.2.5Project 2 này cũng rất đơn giản nên nội dung các file sẽ gần như tương tự với project 1. Dockerfile Cuối cùng truy cập 3 và bạn đã có một project chạy thành công với phiên bản PHP là 7.2.5.Tổng kết
Giới thiệuTrước đây khi tham gia một buổi chia sẻ kiến thức về Docker thì có một bạn đặt câu hỏi mình thấy khá là thú vị, đó là nếu trong trường hợp bạn đang tham gia hai dự án khác nhau, mỗi dự án lại yêu cầu một phiên bản PHP khác nhau thì có thể áp dụng Docker vào được hay không. Ở bài viết này mình sẽ hướng dẫn cách sử dụng Docker để giải quyết câu hỏi được đặt ra ở trên.
Mình sẽ sử dụng Ubuntu nhưng bạn có thể dùng bất cứ hệ điều hành nào Docker hỗ trợDocker: https://docs.docker.com/engine/install/ubuntu/#install-using-the-convenience-script
DockerfileCuối cùng truy cập 3 và bạn đã có một project chạy thành công với phiên bản PHP là 7.2.5.
Tổng kết
Mặc dù bài viết của mình nhìn khá là đơn giản, tuy nhiên khi áp dụng vào một dự án thực sự thì sẽ cần rất nhiều thứ, khi đó nội dung của hai file 0 và 6 sẽ thay đổi rất nhiều. Ví dụ bạn có thể sẽ cần thêm PHP extension, Apache module, hoặc Node.js / npm để compile asset,... Hoặc bạn có thể sẽ cần thêm các service như MySQL, Redis,... Khi đấy thì bạn cần phải tìm hiểu thêm về Docker và Docker Compose để phục vụ cho công việc của mình.
Tiếp theo thì chúng ta sẽ bật những modules của Apache cần thiết cho project.
Vì project mình dùng làm mẫu khá là đơn giản nên chỉ cần thêm một bước cuối cùng đó chính là cài đặt Composer vào. Bạn còn có thể cài đặt thêm Node.js và npm để compile các assest nhưng ở đây mình không cần nên mình sẽ bỏ qua. docker-compose.ymlBạn có thể dùng thẳng command 2 nhưng mình lại ưu tiên sử dụng Docker Compose hơn vì chỉ cần setup một lần là bạn có thể sử dụng nhiều lần mà không cần phải nhớ và gõ lại command.
Ở đây mình sử dụng compose file version 3. Mình chỉ cần một service duy nhất đó chính là PHP / Apache, và sẽ sử dụng image được build từ file 0 ở trên.Vì để tránh port 80 đang dùng thì mình bind lại port thành 564. Việc tiếp theo đó chính là bind các volume cho container. Dữ liệu của container sẽ được chứa ở các volume này, cụ thể là:
CommandSau khi đã có đủ các file: 9, 0, và 6 thì hãy chạy lệnh sau ở folder gốc:
Tiếp theo chúng ta cần cài đặt các package cần thiết cho project:
Cuối cùng truy cập 2 và bạn đã có một project chạy thành công với phiên bản PHP là 5.6.40.Project 2
Project 2 này cũng rất đơn giản nên nội dung các file sẽ gần như tương tự với project 1. Dockerfile
docker-compose.yml 0Command 1Sau khi đã có đủ các file: 9, 0, và 6 thì hãy chạy lệnh sau ở folder gốc:Tiếp theo chúng ta cần cài đặt các package cần thiết cho project:Cuối cùng truy cập 2 và bạn đã có một project chạy thành công với phiên bản PHP là 5.6.40.Project 2 Github: https://github.com/yemiwebby/laravel-api-testing
|