LoginSignup
0
0

More than 1 year has passed since last update.

dockerコンテナで引数としてホスト上のファイルを指定する

Last updated at Posted at 2022-07-02

はじめに

こんにちは、icemint0828です。
今回はdockerコンテナで引数としてホスト上のファイルを指定する方法を紹介します。
 ※自作パッケージをdockerイメージとして公開する際にハマりました。

動作環境

dockerが動作する環境

やりたいこと

ホスト上では以下のように実行していたコマンドをdockerコンテナにシングルバイナリとして持たせて実行したい時があります。

$ imgedit reverse srcImage.png

dockerコンテナ上で以下のように実行したいです。

Dockerfile
# scratchはシングルバイナリを扱うためのベースイメージです。
FROM scratch
ADD imgedit /usr/bin/imgedit
ENTRYPOINT ["imgedit"]
$ docker run ghcr.io/icemint0828/imgedit:latest reverse srcImage.png

このコマンドを実行するとdockerコンテナ上にはsrcImage.pngのファイルが存在しないため、実行エラーとなっていまします。
共有ボリュームを使用し、docker内でのワーキングディレクトリを変更する事で、ホスト上のファイルやディレクトリを扱う事が出来ます。

Dockerfile
# scratchはシングルバイナリを扱うためのベースイメージです。
FROM scratch
ADD imgedit /usr/bin/imgedit
WORKDIR /mnt
ENTRYPOINT ["imgedit"]
$ docker run --rm -v $(pwd):/mnt ghcr.io/icemint0828/imgedit:latest reverse srcImage.png

カレントディレクトリをdockerコンテナ内の/mntとして共有ボリュームに指定する事で、ホスト上のファイルを引数として渡す事が出来ました。
また、このコマンドでは実行時に画像ファイルの出力も行っており、ホスト上のカレントディレクトリに対してファイル出力もされました。

(参考)動作確認用パッケージ

  • icemint0828/imgedit
    goで作成した画像変換用のパッケージです。

おわりに

簡単な内容とはなりますが、dockerコンテナで引数としてホスト上のファイルを指定する方法させて頂きました。
最後まで読んで頂き、ありがとうございました。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0