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

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

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

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

シェル

シェル(shell)はUnix や Linux 系のOSで使用されるコマンドインタプリタを指します。

Docker

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

Q&A

解決済

3回答

1686閲覧

Docker 内のコマンドの実行について

t-cool

総合スコア71

シェルスクリプト

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

シェル

シェル(shell)はUnix や Linux 系のOSで使用されるコマンドインタプリタを指します。

Docker

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

0グッド

1クリップ

投稿2019/12/16 00:46

Re:View を用いて 技術書を作成していましして、Docker のイメージを使って次のように pdf のビルドを行っています。

bash

1$ docker pull nuitsjp/mdview:2.5 2$ cd book-folder 3$ docker run -v `pwd`:/work -it nuitsjp/mdview:2.5 /bin/bash 4$ cd /work && review-pdfmaker config.yml

毎回、次のようにコマンドを打って、コンテナへのログインと pdf の生成をしています。

bash

1$ docker run -v `pwd`:/work -it nuitsjp/mdview:2.5 /bin/bash 2$ cd /work && review-pdfmaker config.yml

bash

1$ cd book-folder 2$ make-pdf

のようにシェルスクリプトで実行することは可能でしょうか。
ご教授いただけるとありがたいです。
よろしくお願いします。

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

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

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

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

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

guest

回答3

0

ベストアンサー

bash

1docker run -v `pwd`:/work -it nuitsjp/mdview:2.5 'cd /work && review-pdfmaker config.yml'

普通にこれでいけそうに思うのですが、何か変数としてパラメタで渡したいと言ったことでしょうか?より複雑な処理を考えているのであれば、既出のimageを再作成がオススメです。

docker-compose でも良さそうです。

docker

1# docker-compose.yml 2 3version: "2" 4services: 5 mdview: 6 image: nuitsjp/mdview:2.5 7 volumes: 8 .:/work 9 working_dir: /work 10 command: 11 /bin/bash review-pdfmaker config.yml

として、以下で実行できるので、

$ docker-compose up

こんな感じのシェルでも良いです。

bash

1$ cd book-folder 2$ docker-compose up

投稿2019/12/16 02:53

t_obara

総合スコア5488

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

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

t-cool

2019/12/16 11:35

ご助言、ありがとうございます! docker-composeを使う形が理想なのですが、ご助言通りに実行すると次のようなエラーが出ました。 $ docker-compose up ERROR: In file './docker-compose.yml', service 'volumes' must be a mapping not a string. どこを修正すると動作するかご助言いただけるとありがたいです。
guest

0

これで良いんじゃないですか?

bash

1docker run -v `pwd`:/work -it --workdir /work nuitsjp/mdview:2.5 review-pdfmaker config.yml

投稿2019/12/16 06:46

YouheiSakurai

総合スコア6142

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

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

0

イメージを作り直すのが良さそうですね

  • make-pdf.shを用意

bash

1cd /work && review-pdfmaker config.yml
  • Dockerfileを作る

Dockerfile

1FROM nuitsjp/mdview:2.5 2COPY ./make-pdf.sh /usr/local/bin/ 3ENTRYPOINT make-pdf.sh
  • イメージを作る

sh

1docker build -t make-pdf .
  • 実行

sh

1docker run -v `pwd`:/work -it make-pdf

投稿2019/12/16 02:01

gorilla0513

総合スコア128

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問