コンテナで複数のスクリプトを実行する

シッダールス

Dockerファイルに複数のスクリプトを追加し、コンテナーが起動したときに実行したいと思います。startup.shはアプリケーションであり、起動して実行されている場合にのみ、playbook.shを実行できます。これは私のdocker-composeです

version: '3.4'

services:
  rstudio_package_manager:
    privileged: true
    image: 'rspm_gh:sid'
    restart: always
    build:
      context: ./
      dockerfile: ./Dockerfile
    ports:
      - 34242:4242
      - 32121:2121
    environment:
      - RSPM_LICENSE=My license
    volumes:
      - ./playbook.sh/:/tmp/playbook.sh
      - ./startup.sh/:/usr/local/bin/startup.sh

これは私のDockerfileです

FROM rstudio/rstudio-package-manager:latest

# Expose necessary ports
EXPOSE 4242/tcp
EXPOSE 2112/tcp

RUN ["chmod", "+x", "/usr/local/bin/startup.sh"]

# Specify the entry point and startup command
ENTRYPOINT ["tini", "--"]
CMD ["/usr/local/bin/startup.sh","/tmp/playbook.sh"]


startup.sh

#!/bin/bash

set -e
set -x

# Deactivate license when it exists
deactivate() {
    echo "Deactivating license ..."
    /opt/rstudio-pm/bin/license-manager deactivate >/dev/null 2>&1
}
trap deactivate EXIT

# Activate License
if ! [ -z "$RSPM_LICENSE" ]; then
    /opt/rstudio-pm/bin/license-manager activate $RSPM_LICENSE
elif ! [ -z "$RSPM_LICENSE_SERVER" ]; then
    /opt/rstudio-pm/bin/license-manager license-server $RSPM_LICENSE_SERVER
elif test -f "/etc/rstudio-pm/license.lic"; then
    /opt/rstudio-pm/bin/license-manager activate-file /etc/rstudio-pm/license.lic
fi

# lest this be inherited by child processes
unset RSPM_LICENSE
unset RSPM_LICENSE_SERVER

# Start RStudio Package Manager
/opt/rstudio-pm/bin/rstudio-pm --config /tmp/temp/rstudio-pm.gcfg

これは私のplaybook.shファイルです

#!/bin/bash
alias rspm='/opt/rstudio-pm/bin/rspm'
rspm create repo --name=prod-cran --description='Access CRAN packages'
rspm subscribe --repo=prod-cran --source=cran
rspm sync --wait

どんな助けもいただければ幸いです

クエンティン・ゾンネフラウド

Dockerイメージに複数のエントリポイントを含めることはできませんが、代替を使用して複数のプロセスを起動できます。

たとえば、スーパーバイザー使用してプロセスを管理できます

コンテナにスーパーバイザーをインストールします

RUN apt-get install -y supervisor

スーパーバイザー構成ファイルをホストからコンテナーにコピーします

COPY supervisord.conf /etc/supervisor/conf.d/supervisord.conf

[supervisord]
nodaemon=true

[program:playbook]
command=/bin/sh -c "/tmp/playbook.sh"

[program:startup]
command=/bin/sh -c "/usr/local/bin/startup.sh"

Dockerfileで、このコマンドを使用してスーパーバイザーを起動します

CMD ["supervisord"]

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

複数のタブを開き、シェルスクリプトでコマンドを実行する

`find`と` xargs`を使用してシェルスクリプトで複数のコマンドを実行する

Libcontainer-コンテナーで複数のプロセスを実行する

1つのDockerコンテナで複数のアプリケーションを実行する

DockerコンテナでSQLスクリプトを実行する

Dockerコンテナで実行されているPythonスクリプトに引数を渡します

あるコンテナから別のコンテナへのコードの実行(つまり、APIコンテナからワーカーコンテナでスクリプトを実行する)

jenkinsパイプラインのDockerコンテナでPythonスクリプトを実行する方法

package.jsonのスクリプトで複数のPowerShellコマンドを実行する方法

複数のテストグループでウィルコクソン検定を実行する

AWSEKSで複数のコンテナでシェルスクリプトを一度に実行する方法

Dockerコンテナの起動時にサブディレクトリの複数のセットアップスクリプトを実行することは可能ですか?

wslのバッチスクリプトで複数のコマンドを実行する

Dockerコンテナ内で実行されているPythonスクリプトに引数を渡す方法は?

Dockerコンテナでシェルスクリプトを実行するときのENONENT

dockerCMDコマンドで複数のnpmスクリプトを実行する方法

DockerコンテナーでAzurePowerShellスクリプトを実行する

Dockerコンテナ内のChromeヘッドレスでTestcafeスクリプトを実行する

Perlで複数のSQLスクリプトを実行する

Pythonスクリプトで複数のCLIコマンドを実行する方法は?

複数のコアでGNUOctaveスクリプトを実行する

init.dスクリプトで複数のコマンドを実行する

Pythonスクリプトを実行し、DockerコンテナのDockerfileでCMDを実行する方法

DockerコンテナAから(DockerコンテナB上で)Bashスクリプトを実行する

c# プリペアド ステートメントで複数の SQL クエリを実行する

別のコンテナ内のコンテナからスクリプトを実行するにはどうすればよいですか?

PHPスクリプトのコンテナ内で関数を起動する方法は?実行またはシステム?

DockerコンテナでPythonスクリプトを実行する方法は?

Dockerコンテナでシェルスクリプトを実行する

TOP 一覧

  1. 1

    Unity:未知のスクリプトをGameObject(カスタムエディター)に動的にアタッチする方法

  2. 2

    セレンのモデルダイアログからテキストを抽出するにはどうすればよいですか?

  3. 3

    Ansibleで複数行のシェルスクリプトを実行する方法

  4. 4

    tkinterウィンドウを閉じてもPythonプログラムが終了しない

  5. 5

    Crashlytics:コンパイラー生成とはどういう意味ですか?

  6. 6

    GoDaddyでのCKEditorとKCfinderの画像プレビュー

  7. 7

    Windows 10 Pro 1709を1803、1809、または1903に更新しますか?

  8. 8

    Chromeウェブアプリのウェブビューの高さの問題

  9. 9

    モーダルダイアログを自動的に閉じる-サーバーコードが完了したら、Googleスプレッドシートのダイアログを閉じます

  10. 10

    Windows 10の起動時間:以前は20秒でしたが、現在は6〜8倍になっています

  11. 11

    Reactでclsxを使用する方法

  12. 12

    ファイル内の2つのマーカー間のテキストを、別のファイルのテキストのセクションに置き換えるにはどうすればよいですか?

  13. 13

    MLでのデータ前処理の背後にある直感

  14. 14

    グラフからテーブルに条件付き書式を適用するにはどうすればよいですか?

  15. 15

    Pythonを使用して同じ列の同じ値の間の時差を取得する方法

  16. 16

    mutate_allとifelseを組み合わせるにはどうすればよいですか

  17. 17

    ネットワークグラフで、ネットワークコンポーネントにカーソルを合わせたときに、それらを強調表示するにはどうすればよいですか?

  18. 18

    テキストフィールドの値に基づいて UIslider を移動します

  19. 19

    BLOBストレージからデータを読み取り、Azure関数アプリを使用してデータにアクセスする方法

  20. 20

    PowerShellの分割ファイルへのヘッダーの追加

  21. 21

    ソートされた検索、ターゲット値未満の数をカウント

ホットタグ

アーカイブ