2017-06-29 3 views
0

こんにちはオンラインV3をopenshiftために私のドッキングウィンドウのイメージを展開しようとしましたが、メッセージのsedopenshift v3のsedの一時ファイルを開くことができませんでした

で失敗しました:一時ファイル/etc/php/7.0/apache2を開くことができませんでした/ sedJpqwn4: 許可が

私のドッキングウィンドウの画像が

RUN sed -i '/<Directory \/var\/www\/>/,/<\/Directory>/ s/AllowOverride None/AllowOverride All/' /etc/apache2/apache2.conf 

のようにsedスクリプトが含まれている私が解決する方法をopenshiftとドッキングウィンドウに新たなんだ拒否この?

答えて

0

ファイル/etc/apache2/apache2.confが書き込み可能であっても、sed -iを使用している場合は、ディレクトリも書き込み可能である必要があります。sedは、そのディレクトリに最初に一時ファイルを作成します。

私の推測では、ファイル全体が実際にはランダムなユーザーIDとなるように、コンテナが実行されるユーザーには書き込み可能ではないと考えられます。

独自のイメージを構築する場合は、アプリケーションまたはスタートアップコードが変更する必要があるディレクトリ/ファイルがグループrootであり、グループによって書き込み可能であることを確認する必要があります。

これが自分のイメージであれば、代わりにPHP用のソース・イメージ・ビルダーを使用していないのはなぜですか?

+0

ドッカーハブにビルドするときは問題ありません。問題は、オンラインでopenshiftに移行するときです。v3、ええと、私はこのおかげで学びます – user8212655

+0

https://blog.openshift.com/jupyter-on-openshift-part-割り当てられたユーザIDとして実行中の6人は、ユーザIDの割り当て方法とそれに対処するためのイメージの設計の必要性について少し話します。 OpenShiftでは、デフォルトでイメージをrootまたは設定されたユーザーIDで実行することはできません。プロジェクトのユーザーIDを割り当て、そのユーザーIDでイメージを実行します。 –

+0

一般に、rootとしてイメージを実行することは非常に悪い考えです。良いセキュリティプラクティスを実装しているプラ​​ットフォームであれば誰でもプラットフォーム全体を侵害しやすくなり、他のユーザーのアプリケーションにアクセスすることが容易になります何らかの脆弱性が発見された場合 –

0

あなたはルートに切り替えてみてくださいすることができます

RUN id -u 

は「185」は、あなたとあなたのケースをテストすることができ、それは私が一緒に仕事画像内で開始し、元のユーザーIDです
USER root 
RUN sed -i '/<Directory \/var\/www\/>/,/<\/Directory>/ s/AllowOverride None/AllowOverride All/' /etc/apache2/apache2.conf 
USER 185 

ルート以外に切り替えることを覚えておいてください。これはドッキングに関連するオープンシフトの制限の1つです。

関連する問題