LoginSignup
51
34

More than 5 years have passed since last update.

Dockerは同じ環境を作れるという安易な認識は間違っていた。

Last updated at Posted at 2017-12-12

経緯

同じはずのDockerコンテナなのにローカル環境とテスト環境でテスト結果が異なっていた。

ファイル操作をするテストケースでLinuxでダメ文字といわれている\0や/周りでファイル・フォルダを作成するテストケースを書いていたところ
ローカル環境ではテストが通る(作成に失敗)開発環境ではテストが失敗した(作成に成功)

開発環境

Arch Linux

cat /etc/redhat-release

CentOS Linux release 7.4.1708 (Core)

uname -r

4.13.8-1-ARCH

ローカル環境

DockerToolbox

cat /etc/redhat-release

CentOS Linux release 7.4.1708 (Core)

uname -r

4.4.89-boot2docker

結論

OSのベースになっているファイルシステム等までは同じにならないのでカーネルのバージョンも合わせるようにした方が良さそうですが、簡単にできそうにないので、ファイルシステム等に依存する処理は行わないほうが良さそうです。

追記

ストレージドライバの設定をデフォルトではなく設定してファイルシステムを揃えてやるという手もあるかもしれませんね、しかし、これだと毎回気にしないといけないので「思考停止で同じ環境ができる!」とはいきませんが。

ディストリビューションの標準ストレージ・ドライバを使います 。
Docker をインストールする時、システム上の設定に応じてデフォルトのストレージ・ドライバを選択します。
デフォルトのストレージ・ドライバの使用は、安定性に対する重要な要素になります。
デフォルトのものを使わなければ、バグや微妙な差違に遭遇する可能性が増えるかもしれません。

参考

http://x68000.q-e-d.net/~68user/unix/pickup?%A5%D5%A5%A1%A5%A4%A5%EB%C0%A9%B8%C2%A4%DE%A4%C8%A4%E1
http://docs.docker.jp/engine/userguide/storagedriver/selectadriver.html

51
34
7

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
51
34