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

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

新規登録して質問してみよう
ただいま回答率
85.35%
docker-compose

docker-composeとは、複数のコンテナで構成されるサービスを提供する手順を自動的し管理を簡単にするツール。composeファイルを使用しコマンド1回で設定した全サービスを作成・起動することが可能です。

Docker

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

Q&A

解決済

2回答

593閲覧

Dockerfileから作成したimageをrunした時にエラーが出ます

nabecima_8511

総合スコア1

docker-compose

docker-composeとは、複数のコンテナで構成されるサービスを提供する手順を自動的し管理を簡単にするツール。composeファイルを使用しコマンド1回で設定した全サービスを作成・起動することが可能です。

Docker

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

0グッド

0クリップ

投稿2021/04/18 09:39

Dockerfile

FROM alpine:latest RUN apk update && apk --update add pngquant --no-cache WORKDIR /images CMD ["pngquant", "--ext", ".png", "--force", "*.png"]

このDockerfileを基にpngquantというimageを作っています。

実行したコマンド

docker run --rm -v $(pwd):/images pngquant

エラー

error: cannot open *.png for reading

試したこと

docker runするときに-itオプションをつけてコンテナに入ってからDockerfileに書いてあるCMDを実行すると正常に動きました。

仮説

CMDではワイルドカードが使えない?

Dockerは勉強し始めたばかりなのでトンチンカンな箇所があるかも知れませんがご容赦ください。

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

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

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

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

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

guest

回答2

0

既に解決されていますが、気になったので回答いたします。

Dockerfile

1CMD ["pngquant", "--ext", ".png", "--force", "*.png"]

Dockerfile で CMD 命令に ["コマンド","コマンド"] で書く場合、
コマンドとして処理されますので、変数展開されません。

Dockerfile で解決されたい場合は、次のように記述すると期待通りの動作になります。

Dockerfile

1CMD pngquant --ext .png --force *.png 2

こうしますと、シェルとしてコマンドは実行できるため、
* (アスタリスク)も利用できます。

参考:exec形式とシェル形式の説明

投稿2021/04/18 22:03

zembutsu

総合スコア1584

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

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

nabecima_8511

2021/04/19 02:18

そうだったのですね! ご回答ありがとうございます!!!
guest

0

自己解決

ワイルドカードはshellの機能なので実行できないようです
-cオプションをつけて実行すると正常に処理が通りました

docker run --rm -it -v $(pwd):/images pngquant sh -c "pngquant --ext .png --force *.png"

投稿2021/04/18 11:21

nabecima_8511

総合スコア1

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.35%

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

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

質問する

関連した質問