Python cliでコンテナシェルを終了する方法

Python cliでコンテナシェルを終了する方法

私はコンテナでPythonを実行しています。

目標は、入力値を受け取って実行中のPythonコードでコンテナを終了することですquit。次のコードを試しました。

import subprocess

def qq():
    while True:
        choice = ""
        choice = input("Type \"quit\" to exit container> ")
        if choice == 'quit':
            print("Exiting container")
            subprocess.call("exit", shell=True)
            break
        else:
            print("Invalid input.")

qq()

docker execコンテナを入力して上記のbashコードを実行すると、次のように出力されます。

root@container:/pyScript#
root@container:/pyScript# python3 kwit.py
Type "quit" to exit container>
Invalid input.
Type "quit" to exit container> quit
Exiting container
root@container:/pyScript#
root@container:/pyScript#

これで、入力するとquitコンテナシェルに戻ります。

quitPythonプロンプトを終了し、Dockerホスト(コンテナではない)に直接戻る入力を望みます。

ベストアンサー1

exec実行時にこれを使用できますpython3

root@container:/pyScript# exec python3 kwit.py

これにより、実行中のシェルがスクリプト実行に置き換えられますpython3。プロセスが終了すると、python3シェルがなくなったためdocker exec終了します。

おすすめ記事