ใช้ Docker volume อย่างไรให้ยกเว้น Sub folder

15 Dec 2017

Share to:

สวัสดีครับ เมื่อเรา Map volume ของ Folder บน Local เข้ากับ Folder บน Container แล้ว สิ่งที่เกิดขึ้นคือ Folder บน Container จะถูกแทนที่ด้วย Folder บน Local บางครั้งเราอยากจะยกเว้น บาง Sub folder บน Container ไม่ต้องการให้ถูกเขียนทับด้วย Sub folder ของ Local เพื่อให้เข้าใจมากขึ้น มาดูกรณีศึกษานี้กันครับ

ถ้าเราต้องการทํา Api Hello world ด้วย nodejs เราจะ Build docker image ขึ้นมาใหม่โดย Image นี้จะต้อง Install dependencies ที่ต้องใช้ไว้หมดแล้ว นั่นหมายความว่า Image นี้มี Folder node_modules เกิดขึ้นมาแล้ว เมื่อถึงเวลาที่เราใช้งาน Image นี้ เราจะ Map volume เข้าไป ซึ่งถ้าเรา Map volume เข้าไปแบบตรงๆ folder node_modules จะถูกเขียนทับ ดังนั้นเราจึงต้องยกเว้น Folder node_modules มีวิธีการทําคือ ให้เราเพิ่ม Map volume แบบนนี้เข้าไปในคําสั่ง Run ครับ

docker run -d --rm -it --name test -v $(pwd):/app/ -v /app/node_modules -p 3000:3000 node-hello

ให้สังเกตตรง -v /app/node_modules ตรงนี้แหละครับ ที่จะบอก Docker เราไม่ต้องการ Map folder นี้นะ Docker จะไม่ Map volume นี้ให้ แต่!!! จะสร้าง Folder ว่างๆ ไว้ให้ทั้งบน Local และ บน Container ในกรณีที่ไม่มี Folder นี้อยู่ ซึ่งสอง Folder นี้จะไม่เกี่ยวข้องกัน สําหรับคําสั่งใน Docker compose เขียนได้ดังนี้

volumes:
  - .:/app
  - /app/node_modules

Source code ตัวอย่าง github.com/mrthiti/docker-volume-example

Image

Suggestion blogs

chown Command เปลี่ยน Owner ของ file ใน Ubuntu

ระบบ file ใน Ubuntu จะมีการกําหนด Owner และ สิทธิ์ของ User การอ่านสิทธิ์เข้าใช้งาน file, Directory ใน ubuntu") ที่จะกระทําการใดๆกับ file หรือ Directory นั้นๆ โดยปกติแล้ว User ที่สร้าไฟล์หนึ่งขึ้นมา จะเป็นเจ้าของไฟล์(Owner)นั้นโดยอัตโนมัติ แต่ถ้าหากต้องการแก้ไข เจ้าของไฟล์ให้เป็น User อื่น สามารถเปลี่ยนด้วยคําสั่งนี้

Conditional types ใน TypeScript

สวัสดีครับ ในบทความนี้เราจะมาเรียนรู้เรื่อง Conditional types ใน TypeScript ว่าคืออะไร นำไปใช้ประโยชน์ได้อย่างไร

การเข้ารหัสข้อมูลแบบอสมมาตร (Asymmetric key)

อัลกอริทึมนี้จะใช้กุญแจสองตัวเพื่อทำงาน ตัวหนึ่งใช้ในการเข้ารหัสและอีกตัวหนึ่งใช้ในการถอดรหัสข้อมูลที่เข้ารหัสมา โดยกุญแจตัวแรก คือ กุญแจสาธารณะ (Public keys) ซึ่งจะเป็นกุญแจที่ใช้ในการเข้ารหัสข้อมูล กุญแจตัวที่สองคือ กุญแจส่วนตัว (Private keys) ซึ่งจะเป็นกุญแจที่ใช้ในการถอดรหัส อ่านๆไปแล้วอาจจะงงว่าจะเอาไปใช้ได้อย่างไร เรามาดูการทํางานกันดีกว่า


Copyright © 2019 - 2024 thiti.dev |  v1.41.0 |  Privacy policy | 

Build with ❤️ and Astro.

Github profile   Linkedin profile   Instagram   X profile   Youtube channel   Telegram   Email contact   วงแหวนเว็บ