На основе:
https://shekhargulati.com/2019/01/18/dockerizing-a-vue-js-application/
Я пытаюсь запустить контейнер, поддерживающий горячую перезагрузку. Согласно приведенному выше руководству, это должно быть возможно при запуске команды docker run:
docker run -it -p 8081:8080 -v ${PWD}:/app/ -v /app/node_modules --name CONTAINER_NAME FRONTEND_IMAGE
Но я не понимаю эту часть: -v ${PWD}:/app/ -v /app/node_modules
. Глядя на первую часть:
-v ${PWD}:/app/
Согласно документации:
https://docs.docker.com/storage/bind-mounts/
первым параметром -v
является имя тома. Почему вы выбрали бы имя ${PWD}
в качестве имени? В моем случае это: /home/user/code/sample001
Во втором случае:
-v /app/node_modules
у тома даже нет имени. Сравнивая это с примером из документации докера:
$ docker run -d \
--name devtest \
-v myvol2:/app \
nginx:latest
Я не понимаю, как -v /app/node_modules
даже имеет смысл.
Если я тогда сделаю:
$ docker inspect CONTAINER_NAME
...
"HostConfig": {
"Binds": [
"/home/user/code/sample001:/app/"
],
...
"Mounts": [
{
"Type": "bind",
"Source": "/home/user/code/sample001",
"Destination": "/app",
"Mode": "",
"RW": true,
"Propagation": "rprivate"
},
{
"Type": "volume",
"Name": "83cbd979484473e3a5a258b8dbad052bc8927e207aa2dc4afa73be72113d3102",
"Source": "/var/lib/docker/volumes/83cbd979484473e3a5a258b8dbad052bc8927e207aa2dc4afa73be72113d3102/_data",
"Destination": "/app/node_modules",
"Driver": "local",
"Mode": "",
"RW": true,
"Propagation": ""
}
],
-v ${PWD}:/app/
фактически создает привязку, а не том.
Чего мне не хватает?