Chạy tập lệnh python trong docker-compose

Trên Linux, bạn cũng nên bật Docker CLI cho tài khoản người dùng không root sẽ được sử dụng để chạy Mã VS

  • Tiện ích mở rộng Docker. Để cài đặt tiện ích mở rộng, hãy mở chế độ xem Tiện ích mở rộng [ ⇧⌘X [Windows, Linux Ctrl+Shift+X< . ]], search for

    from flask import Flask
    app = Flask[__name__] # Flask instance named app
    
    2 to filter results and select Docker extension authored by Microsoft.

  • Tạo một dự án Python

    Nếu bạn chưa có dự án Python, hãy làm theo hướng dẫn Bắt đầu với Python

    Ghi chú. Nếu bạn muốn chứa một ứng dụng web Django hoặc Flask hoàn chỉnh, bạn có thể bắt đầu với một trong các mẫu sau

    • python-sample-vscode-django-tutorial, đây là kết quả của việc làm theo Hướng dẫn Django

    • python-sample-vscode-flask-tutorial, đây là kết quả của việc làm theo Hướng dẫn Flask

    Ghi chú. Đối với hướng dẫn này, hãy đảm bảo sử dụng nhánh hướng dẫn của repos mẫu

    Sau khi xác minh ứng dụng của bạn chạy đúng cách, bây giờ bạn có thể chứa ứng dụng của mình

    Thêm tệp Docker vào dự án

    1. Mở thư mục dự án trong Mã VS

    2. Mở Bảng lệnh [ ⇧⌘P [Windows, Linux Ctrl+Shift+P< . Thêm tệp Docker vào không gian làm việc. ]] and choose Docker: Add Docker Files to Workspace...:

    3. Khi được nhắc về loại ứng dụng, hãy chọn Python. Django, Python. Flask hoặc Python. Chung như loại ứng dụng. Đối với hướng dẫn này, chúng ta sẽ tập trung vào Python. Trường hợp chung, nhưng cũng sẽ bao gồm ghi chú cho Django và Flask

    4. Nhập đường dẫn tương đối đến điểm vào của ứng dụng. Điều này loại trừ thư mục không gian làm việc mà bạn bắt đầu từ đó. Nếu bạn đã tạo một ứng dụng python với

      from flask import Flask
      app = Flask[__name__] # Flask instance named app
      
      3 theo hướng dẫn Bắt đầu với Python, hãy chọn ứng dụng đó

      Django. Chọn

      from flask import Flask
      app = Flask[__name__] # Flask instance named app
      
      4 [thư mục gốc] hoặc
      from flask import Flask
      app = Flask[__name__] # Flask instance named app
      
      5. Xem tài liệu chính thức của Django

      Bình giữ nhiệt. Chọn đường dẫn đến nơi bạn tạo phiên bản Flask của mình. Xem tài liệu Flask chính thức

      Mẹo. Bạn cũng có thể nhập đường dẫn đến tên thư mục miễn là thư mục này bao gồm tệp

      from flask import Flask
      app = Flask[__name__] # Flask instance named app
      
      6

    5. Chọn số cổng. Chúng tôi khuyên bạn nên chọn cổng 1024 trở lên để giảm thiểu các lo ngại về bảo mật khi chạy với tư cách người dùng root. Mọi cổng không sử dụng sẽ chuyển, nhưng Django và Flask sử dụng các cổng mặc định tiêu chuẩn

      Django. Cổng mặc định 8000

      Bình giữ nhiệt. Cổng mặc định là 5000

    6. Khi được nhắc bao gồm Docker Compose, hãy chọn Không nếu bạn không muốn có tệp Docker Compose. Nếu bạn chọn Có, bạn sẽ cần xác minh đường dẫn đến tệp

      from flask import Flask
      app = Flask[__name__] # Flask instance named app
      
      7 của mình trong
      from flask import Flask
      app = Flask[__name__] # Flask instance named app
      
      8 để chạy lệnh Soạn thư thành công. Compose thường được sử dụng khi chạy nhiều container cùng một lúc

    7. Với tất cả thông tin này, tiện ích mở rộng Docker tạo các tệp sau

      • Một

        from flask import Flask
        app = Flask[__name__] # Flask instance named app
        
        8. Để tìm hiểu thêm về IntelliSense trong tệp này, hãy tham khảo tổng quan

      • Tệp

        from flask import Flask
        app = Flask[__name__] # Flask instance named app
        
        2 để giảm kích thước hình ảnh bằng cách loại trừ các tệp và thư mục không cần thiết, chẳng hạn như
        from flask import Flask
        app = Flask[__name__] # Flask instance named app
        
        3,
        from flask import Flask
        app = Flask[__name__] # Flask instance named app
        
        4 và
        from flask import Flask
        app = Flask[__name__] # Flask instance named app
        
        5

      • Nếu bạn đang sử dụng Docker Compose, tệp

        from flask import Flask
        app = Flask[__name__] # Flask instance named app
        
        6 và
        from flask import Flask
        app = Flask[__name__] # Flask instance named app
        
        7

      • Nếu chưa tồn tại, tệp

        from flask import Flask
        app = Flask[__name__] # Flask instance named app
        
        8 để ghi lại tất cả các phụ thuộc của ứng dụng

      Lưu ý quan trọng. Để sử dụng thiết lập của chúng tôi, khung Python [Django/Flask] và Gunicorn phải được đưa vào tệp

      from flask import Flask
      app = Flask[__name__] # Flask instance named app
      
      8. Nếu môi trường ảo/máy chủ đã cài đặt các điều kiện tiên quyết này và được cho là giống hệt với môi trường vùng chứa, hãy đảm bảo các phần phụ thuộc của ứng dụng được chuyển qua bằng cách chạy
      CMD ["gunicorn", "--bind", "0.0.0.0:5000", "{subfolder}.{module_file}:app"]
      
      0 trong thiết bị đầu cuối. Thao tác này sẽ ghi đè lên tệp
      from flask import Flask
      app = Flask[__name__] # Flask instance named app
      
      8 hiện tại của bạn

    [Tùy chọn] Thêm biến môi trường vào hình ảnh

    Bước này không bắt buộc nhưng được đưa vào để giúp bạn hiểu cách thêm các biến môi trường cần đặt trong môi trường của vùng chứa

    Tiện ích mở rộng Docker giúp bạn tạo Dockerfiles bằng cách sử dụng IntelliSense để cung cấp tính năng tự động hoàn thành và trợ giúp theo ngữ cảnh. Để xem tính năng này hoạt động

    1. Mở

      from flask import Flask
      app = Flask[__name__] # Flask instance named app
      
      8

    2. Bên dưới câu lệnh

      CMD ["gunicorn", "--bind", "0.0.0.0:5000", "{subfolder}.{module_file}:app"]
      
      3, nhập ⌃Dấu cách [Windows, Linux Ctrl+Dấu cách] to trigger IntelliSense and scroll to
      CMD ["gunicorn", "--bind", "0.0.0.0:5000", "{subfolder}.{module_file}:app"]
      
      4.

    3. Nhấn Tab hoặc Enter để hoàn thành câu lệnh, .

    Để biết thêm thông tin về cài đặt và sử dụng các biến môi trường trong Dockerfile, hãy xem phần Thay thế môi trường và hướng dẫn ENV trong tài liệu Docker

    Sửa đổi Gunicorn cho ứng dụng Django và Flask

    Để cung cấp cho các nhà phát triển web Python một điểm khởi đầu tuyệt vời, chúng tôi đã chọn sử dụng Gunicorn làm máy chủ web mặc định. Vì nó được tham chiếu trong Dockerfile mặc định nên nó được bao gồm như một phần phụ thuộc trong tệp

    from flask import Flask
    app = Flask[__name__] # Flask instance named app
    
    8. Nếu bạn không nhìn thấy nó trong
    from flask import Flask
    app = Flask[__name__] # Flask instance named app
    
    8, hãy chạy
    CMD ["gunicorn", "--bind", "0.0.0.0:5000", "{subfolder}.{module_file}:app"]
    
    9 rồi chạy
    CMD ["gunicorn", "--bind", "0.0.0.0:5000", "{subfolder}.{module_file}:app"]
    
    0 để tạo lại tệp
    from flask import Flask
    app = Flask[__name__] # Flask instance named app
    
    8

    • Django. Để sử dụng Gunicorn, nó phải liên kết với một ứng dụng có thể gọi được [thứ mà máy chủ ứng dụng sử dụng để giao tiếp với mã của bạn] làm điểm vào. Có thể gọi được này được khai báo trong tệp

      from flask import Flask
      app = Flask[__name__] # Flask instance named app
      
      7 của ứng dụng Django. Để thực hiện ràng buộc này, dòng cuối cùng trong Dockerfile cho biết

      from flask import Flask
      app = Flask[__name__] # Flask instance named app
      
      9

      Nếu dự án của bạn không tuân theo cấu trúc dự án mặc định của Django [nghĩa là thư mục không gian làm việc và tệp wsgi. py > trong thư mục con có tên giống như không gian làm việc], bạn phải ghi đè điểm nhập Gunicorn trong Dockerfile để tìm đúng tệp

      from flask import Flask
      app = Flask[__name__] # Flask instance named app
      
      7

      Nếu tệp

      from flask import Flask
      app = Flask[__name__] # Flask instance named app
      
      7 của bạn nằm trong thư mục gốc, đối số cuối cùng trong lệnh trên sẽ là
      from flask import Flask
      app = Flask[__name__] # Flask instance named app
      
      85. Trong các thư mục con, đối số sẽ là
      from flask import Flask
      app = Flask[__name__] # Flask instance named app
      
      86

    • Bình giữ nhiệt. Để sử dụng Gunicorn, nó phải liên kết với một ứng dụng có thể gọi được [thứ mà máy chủ ứng dụng sử dụng để giao tiếp với mã của bạn] làm điểm vào. Có thể gọi này tương ứng với vị trí tệp và tên biến của phiên bản Flask đã tạo của bạn. Theo Tài liệu Flask chính thức, người dùng thường tạo một phiên bản Flask trong mô-đun chính hoặc trong tệp

      from flask import Flask
      app = Flask[__name__] # Flask instance named app
      
      87 của gói của họ theo cách này

      from flask import Flask
      app = Flask[__name__] # Flask instance named app
      

      Để thực hiện ràng buộc này, dòng cuối cùng trong Dockerfile cho biết

      ________số 8

      Trong Docker. Thêm tệp Docker vào không gian làm việc. lệnh, bạn định cấu hình đường dẫn đến phiên bản Flask, tuy nhiên, tiện ích mở rộng Docker giả sử biến phiên bản Flask của bạn có tên là

      from flask import Flask
      app = Flask[__name__] # Flask instance named app
      
      88. Nếu không phải như vậy, bạn phải thay đổi tên biến trong Dockerfile

      Nếu mô-đun chính của bạn nằm trong thư mục gốc dưới dạng tệp có tên là

      from flask import Flask
      app = Flask[__name__] # Flask instance named app
      
      89 và có một biến thực thể Flask có tên là
      from flask import Flask
      app = Flask[__name__] # Flask instance named app
      
      20, thì đối số cuối cùng trong lệnh trên sẽ là
      from flask import Flask
      app = Flask[__name__] # Flask instance named app
      
      21. Trong các thư mục con, đối số sẽ là
      from flask import Flask
      app = Flask[__name__] # Flask instance named app
      
      22

    Xây dựng, chạy và gỡ lỗi vùng chứa

    Docker. Thêm tệp Docker vào không gian làm việc. lệnh tự động tạo cấu hình khởi chạy Docker để xây dựng và chạy vùng chứa của bạn ở chế độ gỡ lỗi. Để gỡ lỗi vùng chứa ứng dụng Python của bạn

    1. Điều hướng đến tệp chứa mã khởi động ứng dụng của bạn và đặt điểm ngắt

    2. Điều hướng đến Run and Debug và chọn Docker. Python - Chung, Docker. Python - Django hoặc Docker. Python - Flask, khi thích hợp

    3. Bắt đầu gỡ lỗi bằng phím F5 .

      • Bản dựng hình ảnh Docker
      • Bộ chứa Docker chạy
      • Trình gỡ lỗi python dừng ở điểm dừng
    4. Bước qua dòng này một lần

    5. Khi đã sẵn sàng, nhấn tiếp tục

    Tiện ích mở rộng Docker sẽ khởi chạy trình duyệt của bạn tới một cổng được ánh xạ ngẫu nhiên

    Mẹo. Để sửa đổi cài đặt bản dựng Docker của bạn, chẳng hạn như thay đổi thẻ hình ảnh, hãy điều hướng đến

    from flask import Flask
    app = Flask[__name__] # Flask instance named app
    
    23 bên dưới thuộc tính
    from flask import Flask
    app = Flask[__name__] # Flask instance named app
    
    24 trong tác vụ
    from flask import Flask
    app = Flask[__name__] # Flask instance named app
    
    25. Sử dụng IntelliSense trong tệp [ ⌃Space [Windows, Linux Ctrl+Space]] to display all other valid directives.

    Sử dụng Docker Explorer

    Docker Explorer cung cấp trải nghiệm tương tác để kiểm tra và quản lý các tài sản Docker như vùng chứa, hình ảnh, v.v. Để xem một ví dụ

    1. Điều hướng đến Docker Explorer

    2. Trong tab Vùng chứa, nhấp chuột phải vào vùng chứa của bạn và chọn Xem Nhật ký

    3. Đầu ra sẽ được hiển thị trong thiết bị đầu cuối

    Xây dựng hình ảnh trong Azure

    Bạn có thể sử dụng lệnh Azure Container Registry. Xây dựng hình ảnh trong Azure để xây dựng hình ảnh mà sau đó bạn có thể triển khai sang Dịch vụ ứng dụng Azure

    1. Cài đặt tiện ích mở rộng tài khoản Azure. Mở Bảng lệnh [ ⇧⌘P [Windows, Linux Ctrl+Shift+P]] and search for the command Azure: Sign In. If you don't have an Azure account, you can sign up for a free trial.

    2. Có hai cách để gọi lệnh xây dựng trong Azure. Bạn có thể nhấp chuột phải vào Dockerfile và chọn Build Image in Azure. Bạn cũng có thể sử dụng Bảng lệnh [ ⇧⌘P [Windows, Linux Ctrl+Shift+P]] and search for the command Azure Container Registry: Build Image in Azure.

    3. Chọn tên và thẻ cho hình ảnh được xây dựng. Bạn sẽ sử dụng điều này để xác định nó trong sổ đăng ký vùng chứa

    4. Chọn đăng ký Azure bạn muốn sử dụng

    5. Chọn Sổ đăng ký bộ chứa Azure hiện có hoặc tạo một sổ đăng ký mới. Khi bạn tạo một tài khoản mới, bạn được yêu cầu cung cấp tên, nhóm tài nguyên, vị trí và tùy chọn định giá, chẳng hạn như Cơ bản, Tiêu chuẩn hoặc Cao cấp. Bạn có thể đọc về chi phí của các tùy chọn này tại Định giá - Đăng ký vùng chứa

    6. Chỉ định hệ điều hành cơ sở, Linux hoặc Windows. Lựa chọn này phải phù hợp với Dockerfile

    Quá trình xây dựng hình ảnh có thể mất vài phút. Bạn có thể theo dõi tiến trình trong thiết bị đầu cuối. Nếu bạn gặp lỗi [

    from flask import Flask
    app = Flask[__name__] # Flask instance named app
    
    26], hãy thử sử dụng tùy chọn Làm mới trên sổ đăng ký vùng chứa rồi yêu cầu một bản dựng khác. Trước khi xây dựng lại, hãy xóa hình ảnh cũ theo cách thủ công

    Triển khai cho Dịch vụ ứng dụng Azure

    Sau khi hình ảnh vùng chứa được tạo, nó sẽ xuất hiện trong Cơ quan đăng ký vùng chứa với thẻ bạn đã chỉ định. Bây giờ nó đã được xây dựng, bạn có thể triển khai nó vào Dịch vụ ứng dụng Azure. Bạn không cần cài đặt tiện ích mở rộng Dịch vụ ứng dụng Azure để bắt đầu, mặc dù tiện ích này có thể hữu ích để quản lý dịch vụ ứng dụng. Bạn có thể cài đặt nó từ Dịch vụ ứng dụng Azure, nhưng chúng tôi khuyên bạn nên cài đặt gói tiện ích mở rộng Công cụ Azure, gói này bao gồm một gói công cụ dành cho nhiều tình huống phát triển Azure

    1. Nhấp chuột phải vào thẻ hình ảnh và chọn Deploy Image to to Azure App Service

    2. Cung cấp tên của trang web. Đây phải là một tên duy nhất và đối với các ứng dụng Django, nó cũng phải được liệt kê dưới dạng tên máy chủ hợp lệ trong danh sách

      from flask import Flask
      app = Flask[__name__] # Flask instance named app
      
      27 trong tệp
      from flask import Flask
      app = Flask[__name__] # Flask instance named app
      
      28

    3. Cung cấp nhóm tài nguyên, vị trí và Gói dịch vụ ứng dụng. Nếu bạn mới bắt đầu, bạn có thể chọn gói miễn phí

    4. Hình ảnh được triển khai; . Khi nó được triển khai, một thông báo sẽ xuất hiện với một nút mà bạn có thể sử dụng để truy cập trang web. Bạn cũng có thể sử dụng địa chỉ của trang web,

      from flask import Flask
      app = Flask[__name__] # Flask instance named app
      
      29 trong đó
      from flask import Flask
      app = Flask[__name__] # Flask instance named app
      
      30 là tên bạn đã đặt khi tạo trang web. Nếu nó không hoạt động lúc đầu, hãy thử lại sau vài phút. Không có gì lạ khi một vài lần thử đầu tiên hết thời gian chờ hoặc trả về lỗi. Điều đó chỉ có nghĩa là Dịch vụ ứng dụng chưa sẵn sàng nhận yêu cầu

    5. Thực hiện một thay đổi nhỏ trong mã ứng dụng hiển thị trên một trong các trang và lưu tệp

    6. Sử dụng biểu tượng Azure để mở dạng xem Tài nguyên và mở rộng nút cho đăng ký của bạn để tìm Dịch vụ ứng dụng mà bạn đã triển khai ở bước trước

    7. Nhấp chuột phải vào nút Dịch vụ ứng dụng và xem các tùy chọn khả dụng. Chọn Deploy to Web App, sau đó chỉ định thư mục ứng dụng của bạn để triển khai nó

      Khi được cảnh báo rằng điều này sẽ ghi đè lên triển khai trước đó, hãy chọn Triển khai để xác nhận

      Điều này có lẽ tốn một vài phút; . Khi nó kết thúc, một nút có quyền truy cập vào trang web được cung cấp

      Sử dụng nút và xác minh rằng thay đổi của bạn được phản ánh trên trang web

    Xin chúc mừng, bạn đã sử dụng Python trong Mã VS để tạo triển khai một trang web được lưu trữ trên đám mây và trực tuyến trên internet

    Giải phóng tài nguyên

    Trong cổng Azure, xóa Nhóm tài nguyên để giải phóng tất cả các tài nguyên mà bạn đã tạo trong bài tập này

    Tôi có thể chạy Python trong docker không?

    Bây giờ bạn có thể. Bắt đầu REPL Python thông qua Docker . Thiết lập môi trường Python của bạn bên trong hình ảnh Docker. Chạy tập lệnh bên trong bộ chứa Docker.

    Làm cách nào để chuyển đổi tập lệnh Python thành hình ảnh docker?

    Hãy cho chúng tôi xem làm thế nào nó có thể được thực hiện trong một vài bước đơn giản. .
    Bước 1. Xác định tệp yêu cầu. Vì chúng tôi cần thư viện yêu cầu để thực hiện lệnh gọi API, hãy để chúng tôi xác định một yêu cầu. .
    Bước 2. Tạo tập lệnh Python. .
    Bước 3. Xác định Dockerfile. .
    Bước 4. Xây dựng và chạy bộ chứa Docker

    Docker soạn trong Python là gì?

    Docker Compose là công cụ để chạy các ứng dụng nhiều vùng chứa trên Docker được xác định bằng định dạng tệp Compose . Tệp Soạn thảo được sử dụng để xác định cách một hoặc nhiều vùng chứa tạo nên ứng dụng của bạn được định cấu hình.

    Làm cách nào để chạy tập lệnh Python?

    Để chạy tập lệnh Python bằng lệnh python, bạn cần mở một dòng lệnh và nhập từ python hoặc python3 nếu bạn có cả hai phiên bản, theo sau là đường dẫn . $ python3 xin chào. py Xin chào thế giới. Nếu mọi thứ hoạt động bình thường, sau khi nhấn Enter, bạn sẽ thấy cụm từ Hello World. , just like this: $ python3 hello.py Hello World! If everything works okay, after you press Enter , you'll see the phrase Hello World!

    Chủ Đề