私はPythonアプリケーションのためにDockerfileを書いています。Linuxの画面でデタッチモードのdockerでpythonプロセスを実行する
要件は次のとおりです。
- が&開始MySQLサーバをインストールします。
- アプリケーションをデタッチモードで画面で実行します。
FROM ubuntu:16.04 # Update OS RUN apt-get update RUN apt-get -y upgrade # Install Python RUN apt-get install -y python-dev python-pip screen npm vim net-tools RUN DEBIAN_FRONTEND=noninteractive apt-get -y install mysql-server python-mysqldb RUN mkdir -p /usr/src/app WORKDIR /usr/src/app COPY requirements.txt /usr/src/app RUN pip install --no-cache-dir -r requirements.txt COPY src /usr/src/app/src COPY ./src/nsd.ini /etc/ RUN pwd RUN cd /usr/src/app RUN service mysql start RUN /bin/bash -c "chmod +x src/run_demo_app.sh && src/run_demo_app.sh"
は、以下の問題は、MySQLが起動しないでbashスクリプト
$ cat src/run_demo_app.sh $ screen -dm bash -c "sleep 10; python -m src.app";
の内容です:
以下は私のDockerfileです。私はコンテナから手動で起動する必要があります。
また、画面が消えてアプリケーションが起動しなくなります。手動でスクリプトを実行すると正常に動作します。
編集と回答のために@Tarun Lalwaniありがとうございました。私は、ドッカーが作成し、別のコンテナとして 'mysql'を実行していることを認識しています。しかし、私の必要条件は、単一のコンテナで実行することです。そのため、サービスとして「mysql」を開始しようとしました。失敗の理由を指摘してくれてありがとう。私は画面を使用し、画面が使えない理由を見たくない。もっと重要なのは、コンテナの開始時になぜ失敗したのかを理解したいのです。 – nebi
@nebi、この記事がhttp://tarunlalwani.com/post/deploying-code-inside-docker-images-statically-dynamically/に役立つかどうかをご覧ください。スーパーバイザーを使用するためのセクションがあります。これはあなたのケースで使用する必要があります –