Asked Nov 18th, 2019 7:25 AM 59 0 1
  • 59 0 1
+2

Container Docker

Share
  • 59 0 1

Các anh em cho mình hỏi là: khi mình deploy 1 trang web vào container,trang web có thư mục css , js , img. nhưng khi run container thì vào web chỉ thấy chữ mà không thấy định dạng và hình ảnh của trang web. các anh em chỉ mình với.thanks!

p/s: mình có dùng thêm option -v để mount các thư mục ấy vào nhưng vào trong container thì không thấy file gì hết.

1 ANSWERS


Answered Nov 18th, 2019 7:40 AM
+5

Hơi ít thông tin để đoán được lỗi bạn đang gặp phải, chẳng hạn như bạn đang deploy docker ở Swarm mode hay không? Deploy docker trên mấy node, đã setup NFS giữa các node chưa? Web chạy proxy hay dùng web server nào: nginx, apache...

MÌnh thử đoán mò, chắc ý bạn là web không hiển thị được ảnh và style nhỉ? Mình gợi ý bạn thử check lỗi bằng cách sau:

  • Bạn thử access vào trong container xem đã có các file css, js, img được mount vào trong container chưa, mount có đúng folder chưa?
  • Web server đã chạy hay chưa?

Rất có thể là bạn chưa mount được hoặc mount sai đường dẫn vào trong container nên không request được các file static kia. Để thuận tiện cho việc deploy mình suggest bạn dùng docker-compose thay vì deploy bằng docker cli.

Share
Za Nguyễn @zanguyen
Nov 18th, 2019 8:50 AM

cảm ơn bạn

0
| Reply
Share
Za Nguyễn @zanguyen
Nov 18th, 2019 9:07 AM

mình đã thử lại,ở phần Dockerfile mình thêm dòng ADD . /user/share/nginx/html. dòng lệnh này giúp đưa toàn bộ folder chứa file css ,js ,img vào container luôn

0
| Reply
Share
Nov 18th, 2019 9:56 AM

@zanguyen Access vào bên trong container thì có file chưa bạn?

docker exec -it container_id sh
ls -la /user/share/nginx/html

Nginx bạn có chắc chắn là đã cấu hình để nó tạo route vào đúng folder /user/share/nginx/html chưa? 🤔

0
| Reply
Share
Nov 18th, 2019 10:00 AM

Ví dụ vào trong container thực hiện request file như này:

wget -qO- http://localhost/images/xxx.jpg
  • Nếu response là 404 mà file tồn tại trong container thì khả năng cao bạn cấu hình nginx sai ở đâu đó.
  • Nếu response là 200, tức là file có thể request được qua HTTP thì khả năng bạn đang cấu hình proxy ở bên ngoài sai.
  • Khi truy cập web thì các file báo lỗi 404 hay lỗi gì bạn nhỉ?
0
| Reply
Share