Rumah >pembangunan bahagian belakang >Tutorial Python >Bagaimana untuk menghantar hujah baris arahan ke bekas Python Docker?

Bagaimana untuk menghantar hujah baris arahan ke bekas Python Docker?

WBOY
WBOYke hadapan
2023-09-08 13:29:051076semak imbas

如何将命令行参数传递给Python Docker容器?

Sebelum memahami parameter kontena docker, kita mesti memahami parameter baris arahan python dan cara pembangun mengaksesnya. Argumen baris arahan sangat berguna apabila kita ingin mengawal skrip Python di luar program.

Akses argumen baris arahan kepada skrip python

Langkah 1: Cipta skrip python main.py

Contoh

# sys will allow us to access the passed arguments
import sys

# sys.argv[0] access the first argument passed that is the python script name
print("\nFile or Script Name is :", sys.argv[0])

# print arguments other than the file name
print("\nArguments passed:", end = " ")
for i in range(1, len(sys.argv)):
   print(sys.argv[i], end = " ")

# Lowercase operation on the passed arguments
for i in range(1, len(sys.argv)):
   print(sys.argv[i].lower(), end = " ")

Langkah 2: Jalankan pada terminal dengan parameter

#python3 main.py HELLO THIS IS TUTORIALSPOINT

Output

File or Script Name is : main.py
Arguments passed: HELLO THIS IS TUTORIALSPOINT
hello this is tutorialspoint

Haruskan parameter ini ke bekas docker

Kami mempunyai cara berbeza untuk menyampaikan hujah baris arahan kepada bekas docker. Sebahagian daripada mereka disebut langkah demi langkah di bawah.

Gunakan parameter Docker dengan ENTRYPOINT

Caranya ialah menggunakan titik masuk dengan fail docker dan ubah hala titik masuk itu ke fail python untuk dilaksanakan. Selepas itu, hanya lulus parameter python yang diperlukan semasa menjalankan bekas docker.

Langkah 1: Cipta Dockerfile

Contoh

FROM python
WORKDIR /app
COPY . /app/
ENTRYPOINT ["python3", "main.py"]

Langkah 2: Bina imej

Contoh

#docker build -t arg_py .

Output

Sending build context to Docker daemon 8.192kB
Step 1/4 : FROM python
---> fa9122485d1d
Step 2/4 : WORKDIR /app
---> Using cache
---> 9e9708fe1d43
Step 3/4 : COPY . /app/
---> aea9ecf32f55
Step 4/4 : ENTRYPOINT ["python3", "main.py"]
---> Running in 864440fa7988
Removing intermediate container 864440fa7988
---> d6e31e5606b8
Successfully built d6e31e5606b8
Successfully tagged arg_py:latest

Langkah 3: Jalankan bekas

#docker run --name mycontainer arg_py HELLO FROM TUTORIALSPOINT

Contoh

File or Script Name is : main.py
Arguments passed: HELLO FROM TUTORIALSPOINT
hello from tutorialspoint

Gunakan pembolehubah persekitaran Docker melalui ENTRYPOINT

Arahan docker run memberikan kita beberapa ciri yang luar biasa, salah satunya ialah pembolehubah persekitaran. Di sini kita akan menggunakan pembolehubah persekitaran ini untuk menghantar data ke skrip python dalaman pada bekas docker.

Langkah 1: Buat skrip python untuk mengakses pembolehubah persekitaran

Membuat skrip python kali ini akan sangat serupa dengan contoh pertama. Daripada mengimport modul "sys", kami akan mengimport modul "os" untuk mendapatkan pembolehubah persekitaran. Buat fail python dan tampal kod berikut.

Contoh

import os

#declare some variables for environment variable
#os.getenv will fetch the environment variables from the container.
userName = os.getenv("User_Name")
passWord = os.getenv("Pass_Word")

#Now print the variables that has been fetched.
print("Running with user: %s" % userName)
print("Your password: %s" % passWord)

#Apply some operation
print(userName.upper())
print(passWord.upper())

Simpan fail di atas sebagai main.py

Langkah 2: Bina fail docker

Bina fail docker untuk mencipta imej baharu menggunakan kod python ini. Fail docker ini adalah sama seperti yang kami buat sebelum ini, cuma menukar kod python dalam main.py.

Contoh

#docker build -t env_img .

Output

Sending build context to Docker daemon 3.072kB
Step 1/4 : FROM python
---> fa9122485d1d
Step 2/4 : WORKDIR /app
---> Using cache
---> 9e9708fe1d43
Step 3/4 : COPY . /app/
---> 31f98d53c161
Step 4/4 : ENTRYPOINT ["python3", "main.py"]
---> Running in bec1681a6842
Removing intermediate container bec1681a6842
---> 5dd89b0c7985
Successfully built 5dd89b0c7985
Successfully tagged env_img:latest

Langkah 3: Jalankan bekas

Gunakan pembolehubah persekitaran yang disebut dalam skrip python semasa menjalankan bekas. Docker run mempunyai bendera "-e" untuk menyebut sebarang pembolehubah persekitaran dan kita boleh menyebut beberapa pembolehubah persekitaran sekaligus

Contoh

#docker run -e User_Name="TutorialsPoint" -e Pass_Word="secret" --name env_cont env_img

Output

Running with user: TutorialsPoint
Your password: secret
TUTORIALSPOINT
SECRET

Ini adalah cara kita boleh menghantar argumen baris arahan dan pembolehubah persekitaran kepada bekas python yang berjalan pada daemon docker dengan bantuan klien docker.

Atas ialah kandungan terperinci Bagaimana untuk menghantar hujah baris arahan ke bekas Python Docker?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Artikel ini dikembalikan pada:tutorialspoint.com. Jika ada pelanggaran, sila hubungi admin@php.cn Padam