Có phải không hiểu biết Linux là một thiếu sót lớn của lập trình viên? Cần các bác trợ giúp về docker
Mình trước giờ lập trình, sử dụng các công cụ lập trình trong mội trường windows. Sau đó bước chân vào Linux mình mới thấy rằng ở đó là một thế giới mới và KHÔNG THỂ TIẾN XA nếu không có hiểu biết về Linux. Đầu tiên là việc tự cài đặt các phần mềm phía Server.
Mình có một dự án dùng Laravel -PHP. Phía server mình sử dụng vagrant + VM box + homestead để giả lập Máy chủ, nhưng nó rất hay lỗi. Sau đó mình chuyển qua Docker, nhưng thực sự nó không đơn giản chút nào. Build bằng những câu lệnh mà mình không hiểu gì cả.
Mình tìm được images homestead: https://hub.docker.com/r/shincoder/homestead/ và làm theo hướng dẫn trong đó. Tất cả đều thuật lơi cho đến đoạn:
Add a virtual host
Assuming you mapped your apps folder to /apps (you can change mappings in the docker-compose.yml file,
it's prefered to use absolute paths), you can do:
cd / && ./serve.sh myapp.dev /apps/myapp/public
Mình không hiểu là đoạn lệnh cd / && ./serve.sh myapp.dev /apps/myapp/public
chèn vào đâu. Vào file docker-compose.yml hay truy cập vào ssh để chèn. Mong các bạn giúp đỡ mình trường hợp này.
Những lập trình viên không biết Linux chắc toàn đồ bỏ đi.
Nhìn rộng rộng ra nữa xem nào ???
Hi Nguyễn Đức Hoàng.
Thử virtualbox và cài bản ubuntu déktop lên xem @_@!
Bạn làm từ trên xuống, lệnh đó là gõ vào trong ssh
// Nên học và tìm hiểu windows kha khá, sau đó hãy chuyển sang linux
Trong ssh có cần phải truy cập vào thư mục nào nữa ko bác nhỉ? mình copy page thì báo lỗi
Mình dùng qua vagrant đơn giản hơn. Lúc đầu cũng ổn định nhưng sau đó khởi động nó hay báo những lỗi không đâu. Laravel nó yêu cầu cài nhiều gói phụ, mình chưa có hiểu biết Linux lên chắc không khả thi
Hi Nguyễn Đức Hoàng.
Thế học xơ qua. Mất 1 tuần là ok.
Chào bạn, thiếu xót thế nào thì mình không biết. Nhưng bạn muốn học linux, thì mình bảo đảm nếu bạn tập trung học thì chỉ khoảng 1 tháng bạn đã đủ kiến thức và kỹ năng hòm hòm với linux rồi.
Bản chất nó cũng chỉ là một hệ điều hành, đang dùng window quen rồi hãy dùng linux và thử so sánh các đặc điểm chung như quản lý tiến trình, quản lý file, quản lý bộ nhớ,… giữa 2 hệ diều hành.
Còn lệnh bạn không hiểu: [quote=“Nguyen_Duc_Hoang1, post:1, topic:55090”]
cd / && ./serve.sh myapp.dev /apps/myapp/public
[/quote]
cd: change director: chuyển sang thư mục. “/” trong linux là thư mục root
&& là toán tử như mọi ngôn ngữ lập trình
còn đoạn đằng sau là thực hiện các shell thôi.
Dễ hiểu thôi mà, chúc bạn may mắn
Tất nhiên biết nhiều thì lợi thế lớn, nhất là ngày nay Cloud Computing phát triển như nấm mọc sau mưa mà toàn chạy Linux Distro
Thực tế làm quen và thao tác tốt với Linux không mất nhiều thời gian do Internet có đầy ra, tìm, setup và luyện xử lý tình huống bằng cách xài Ubuntu Server (no GUI) trên máy ảo hay mua VPS về vọc
Bạn ấy bảo không biết chạy lệnh đó lên ssh hay config vào
docker-compose.yml
Mà mình nghĩ là phải chạy lệnh chứ
Có thể chuyển sang dùng ubuntu 1 thời gian là ngấm thôi. . Dục tốc bất đạt
Nếu bạn ko làm .net, hoặc lập trình app cho windows thì ko cần tìm hiểu gì kha khá, linux là os thích hợp nhất cho developer rồi (ko tính làm iOS, MAC programming)
trong ngữ cảnh của repo nói thì ssh vào container rồi chạy lệnh, nhưng bạn cũng có thể bỏ thẳng vào Dockerfile, tùy ý bạn muốn nó chạy ntn.
Bạn phải in cái code của docker-compose cho ae xem.
Bạn bị thiếu phần mapping folder (sync) giữa host chính và container host. Cụ thể:
Map /apps
Map port
Mở etc/hosts (macOS - platform khác search nha), thêm dòng myapp.dev 127.0.0.1:port với port đã map ở trên.
Ps: ai nói iOS không cần biết Linux nào, iOS dev
Mình đã giải quyết được vấn đề. Cd ra thư mục root và chạy lệnh. File docker-compose.yml cũng đã có mapping.
docker-compose.yml
Nhưng có một vấn đề: Kết nối vào mariadb rất hay bị dis. Và Khi kết nối được thì import database(file .sql) bị lỗi. Mặc dù mình thử trong vagrant-homestead thì bình thường. Mình sử dụng SqlYog và navicat thì đều báo lỗi foreign key. Mariadb sử dụng 1 container riêng nhé các bạn. Khó hiểu thật…
Hic bác nói ác quá, em mù linux, trước giờ toàn làm windows, hic chắc phải về luyện linux chứ ko tụt hậu
Hạn chế set mount volumes kiểu này, nên để
./