Docker が再起動時にコンテナーを再起動できるように docker-compose ファイルを構成するのに問題があります (私の OS は Ubuntu 16.04 です)。問題は、渡すときではなくrestart: always
、コンテナーがボリュームベースのファイル (nginx への ssl-cert など) を必要とするときです。私のコード(docker-compose.yml内):
php:
entrypoint: ["wait-for-it", "dockerhost:3306", "-t", "0", "--", "/install.sh"]
environment:
- ENVIRONMENT=prod
volumes:
- ${FILE}:/file
- /code
env_file:
- prod.env
restart: always
そして、私が自分でそれを始めると、すべてがうまくいきます。次に、再起動後に動作するかどうかを確認しています。しかし、いや、それはうまくいきませんdocker-compose ps
。
Name Command State Ports
-----------------------------------------------------------------------
panel_php_1 wait-for-it dockerhost:330 ... Exit 127
実行するdocker inspect panel_php_1
と、エラーがエコーされます:
"Error": "oci runtime error: container_linux.go:247: starting container process caused \"process_linux.go:359: container init caused \\\"rootfs_linux.go:54: mounting \\\\\\\"/home/mblocinski/hehe.txt\\\\\\\" to rootfs \\\\\\\"/var/lib/docker/aufs/mnt/d746adf311098a9e2ffc27d9447a3e448ecfb9081ff4757704c24ec51ef9053e\\\\\\\" at \\\\\\\"/var/lib/docker/aufs/mnt/d746adf311098a9e2ffc27d9447a3e448ecfb9081ff4757704c24ec51ef9053e/file\\\\\\\" caused \\\\\\\"not a directory\\\\\\\"\\\"\"\n: Are you trying to mount a directory onto a file (or vice-versa)? Check if the specified host path exists and is the expected type"
そしてマウント:
"Mounts": [
{
"Type": "bind",
"Source": "/home/mblocinski/hehe.txt",
"Destination": "/file",
"Mode": "rw",
"RW": true,
"Propagation": ""
}
]
hehe.txt ファイルはディレクトリではなくファイルであると確信しています。ディレクトリであるコンテナへのボリュームのマウントがうまくいくと言えば参考になるかもしれません。助けてください、すでにインターネット全体を検索しましたが、実際には何も機能しません。ありがとう