質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
シェルスクリプト

シェルスクリプトは、UNIX系のOSもしくはコマンドラインインタプリタ向けに記述されたスクリプト。bash/zshといったシェルによって実行されるため、このように呼ばれています。バッチ処理などに使用されており、テキストファイルに書かれた命令を順に実行します。

Docker

Dockerは、Docker社が開発したオープンソースのコンテナー管理ソフトウェアの1つです

Q&A

解決済

1回答

7021閲覧

Dockerfileでシェルスクリプトを実行したい

ttpk

総合スコア338

シェルスクリプト

シェルスクリプトは、UNIX系のOSもしくはコマンドラインインタプリタ向けに記述されたスクリプト。bash/zshといったシェルによって実行されるため、このように呼ばれています。バッチ処理などに使用されており、テキストファイルに書かれた命令を順に実行します。

Docker

Dockerは、Docker社が開発したオープンソースのコンテナー管理ソフトウェアの1つです

0グッド

0クリップ

投稿2022/06/21 12:28

編集2022/06/21 13:18

ご覧いただきありがとうございます。

docker環境でJDK6とtomcat6を動かしたいのですが、
インストールまでに実行する必要があるコマンドが多いので
シェルスクリプトに書いてまとめて実行しようと考えています。
現在Dockerfileを作成し、同じ階層にbinフォルダを配置しました。
binフォルダ配下に置いたinstall.shをdocker buildコマンド実行時に動かしたいです

├── Dockerfile ├── bin └── install.sh
FROM centos:latest COPY /tools /usr/local/java EXPOSE 80 RUN /bin/install.sh

docker build -t sample2 .

コマンドでイメージ作成しようとしたところ

#5 0.566 /bin/sh: install.sh: command not found #5 ERROR: executor failed running [/bin/sh -c install.sh]: exit code: 127

というエラーが出ました。
RUNコマンドでシェルスクリプトを実行することは可能でしょうか?

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

可能です。
コピーしてから実行してあげてください。

マウントだとうまく実行できなかった記憶があります。

Dockerfile

1COPY /tools /usr/local/java 2

もしこのCOPYでコピーしているなら、実行パスは/usr/local/java/{bin?}/install.shです。
Ubuntu:rollingを元に作ったDcokerfileの場合、COPY後RUN /usr/bin {/path/to/sh/file}で実行可能でした。

投稿2022/06/22 00:38

FiroProchainezo

総合スコア2401

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

ttpk

2022/06/22 03:41

回答ありがとうございます。 binフォルダををtoolsディレクトリ配下に移して COPYコマンドでコンテナ内にコピーし RUN /usr/local/java/bin/install.sh コマンドでたたくことに成功しました
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問