à chuẩn rồi bro =)) mình nhớ có 1 trường hợp vẫn dùng được cái mapping port kia nhưng ko tính là giao tiếp giữa container vì là run outside the container. (nhớ nhầm sang trường hợp đó nên phản pháo ngay =)) )
đúng là phải có 1 cái để ánh xạ chung thì các container mới giao tiếp được với nhau, thank bro vì góp ý nhé. để mình edit lại đoạn đầu bài viết :v lú quá :v
Cám ơn bạn đã theo dõi, có nhiều thứ mình muốn chia sẻ nhưng chưa nghĩ ra chủ đề phù hợp để viết, nhưng chắc sẽ có docker,server, ci/cd nhé, vì đấy cũng là món mình rất thích
về việc dùng debugger thay vì console.log mình không có ý kiến gì , tùy vào việc cái nào tiện cho bạn hơn và bạn thấy nó có ích hơn. Mình thì vẫn dùng console.log vì đôi khi code NodeJS debug trên terminal khá nhanh và tiện. Còn nếu bạn muốn dùng debugger thì cũng rất ok vì sẽ có được thông tin chi tiết hơn . Ở trong bài mình cũng code note cho các bạn là xóa console.log trước khi commit, vì thực sự mình cũng khá bị đau mắt khi đọc code người khác mà toàn console.log
khi mình install thì bị lỗi này Unable to locate publishable resources. và đăng nhập thì báo lỗi These credentials do not match our records.
ai biết cách fix chỉ mình với
thanks
Mình đọc nãy giờ mà chưa hiểu lắm. File store của mình thế này, giờ sửa lại như nào bạn.
//ĐÂY LÀ FILE store.js
import * as firebase from 'firebase';
import {gymData} from './firebaseConnect';
//Khai báo biến redux
let redux = require('redux');
//Khai báo reducer
const allReducerInitialState = {
editData:{},
}
const allReducer = (state = allReducerInitialState, action) => {
switch (action.type) {
case "ADD_DATA":
let ketnoi1 = firebase.database().ref('dataForGym');
ketnoi1.push(action.customer);
console.log("Thêm dữ liệu thành công!");
return state
case "GET_DATA"://Lấy dữ liệu đưa qua store khi bấm vào nút Edit
return {...state,editData:action.getOneRow}
case "GET_EDIT_DATA"://Lấy dữ liệu ĐÃ SỬA đưa qua store và update lên firebase
let ketnoi2 = firebase.database().ref('dataForGym');
ketnoi2.child(action.sendEditData.id).update({
fullname:action.sendEditData.fullname,
email:action.sendEditData.email,
phonenumber:action.sendEditData.phonenumber,
birthday:action.sendEditData.birthday,
homeaddress:action.sendEditData.homeaddress,
registrationdate:action.sendEditData.registrationdate,
expirydate:action.sendEditData.expirydate
})
console.log("Cap nhat thanh cong!");
return {...state,editData:{}} //update xong thì gán về rỗng
default:
return state
}
}
//Khai báo store
let store = redux.createStore(allReducer);
//theo dõi state của store, thay đổi thì in ra màn hình
store.subscribe(function(){
console.log(JSON.stringify(store.getState()));
})
export default store;
state này mình lấy bên store nên chỉ readonly thôi, còn muốn update thì phải tìm cách gán vào state nội bộ của form Edit chứ, rồi từ đó ta gửi ngược lại qua store để cập nhật vào csdl. Theo kiến thức của mình biết là vậy. Hi.
Chính xác, thằng docker compose này nguyên lý nó là vậy mà, nó tạo ra 1 network cho tất cả các service bên trong nó chạy chung. (có thể địng nghĩa hoặc dùng mặc định)
Như mình nói thì nó đơn giản là "1 công cụ hỗ trợ" dựa trên Docker chứ không phải là 1 tính năng mới. Nó chả có gì hơn Docker cả, nó chỉ gom và thay vì trực tiếp dùng script để run thì bạn dùng 1 cái high level script đã được build sẵn để run và được kiểm duyệt và phát hành từ chính Docker mà thôi.
Mapping public port ai bảo bạn là ko phải để kết nối các container, service vốn tạo ra nó đã tách biệt rồi, cách các container giao tiếp là qua thứ nhất network hay tương tự như linking (nó sẽ hiểu theo container name). Nhưng đó là private. Mapping port cho phép các container đó giao tiếp 1 cách public, tức là ngay cả khi bạn ở bên ngoài, bạn cũng "có thể" nhìn thấy được các service hoạt động chung được. => vậy ko phải là kết nối giao tiếp giữa các container thì là gì nhỉ :-?
THẢO LUẬN
à chuẩn rồi bro =)) mình nhớ có 1 trường hợp vẫn dùng được cái mapping port kia nhưng ko tính là giao tiếp giữa container vì là run outside the container. (nhớ nhầm sang trường hợp đó nên phản pháo ngay =)) ) đúng là phải có 1 cái để ánh xạ chung thì các container mới giao tiếp được với nhau, thank bro vì góp ý nhé. để mình edit lại đoạn đầu bài viết :v lú quá :v
mình dùng tài khoản mặc định thì nó báo lỗi như trên
a cũng chúc e thành công nhiều hơn thế
Cám ơn bạn đã theo dõi, có nhiều thứ mình muốn chia sẻ nhưng chưa nghĩ ra chủ đề phù hợp để viết, nhưng chắc sẽ có docker,server, ci/cd nhé, vì đấy cũng là món mình rất thích
cám ơn e đã theo dõi,
về việc dùng
, tùy vào việc cái nào tiện cho bạn hơn và bạn thấy nó có ích hơn. Mình thì vẫn dùng
. Ở trong bài mình cũng code note cho các bạn là xóa console.log trước khi commit, vì thực sự mình cũng khá bị đau mắt khi đọc code người khác mà toàn console.log 
debuggerthay vìconsole.logmình không có ý kiến gìconsole.logvì đôi khi code NodeJS debug trên terminal khá nhanh và tiện. Còn nếu bạn muốn dùngdebuggerthì cũng rất ok vì sẽ có được thông tin chi tiết hơnkhi mình install thì bị lỗi này Unable to locate publishable resources. và đăng nhập thì báo lỗi These credentials do not match our records. ai biết cách fix chỉ mình với thanks
Mình đọc nãy giờ mà chưa hiểu lắm. File store của mình thế này, giờ sửa lại như nào bạn.
state này mình lấy bên store nên chỉ readonly thôi, còn muốn update thì phải tìm cách gán vào state nội bộ của form Edit chứ, rồi từ đó ta gửi ngược lại qua store để cập nhật vào csdl. Theo kiến thức của mình biết là vậy. Hi.
nat port, hay forward port trong docker internal network ra ngoài local thì đó không phải là phương thức giao tiếp giữa các container.
ông có cái 2 cái container:
tôi hỏi ông là trong container php ông kết nối với mysql bằng outside:33066 hay inside:3306 ??
Đọc thêm mấy cái này nhé
https://docs.docker.com/v17.09/engine/userguide/networking/default_network/container-communication/#communicating-to-the-outside-world
https://docs.docker.com/v17.09/engine/userguide/networking/default_network/container-communication/#communication-between-containers
https://docs.docker.com/v17.09/engine/userguide/networking/#docker-and-iptables
còn nếu muốn container kết nối được với host chạy docker, ví dụ như container php kết nối mysql chạy bên ngoài thì phải dùng cách này:
https://stackoverflow.com/questions/24319662/from-inside-of-a-docker-container-how-do-i-connect-to-the-localhost-of-the-mach
thế ăn thôi
)
hay đó, cũng đang đọc về ajax polling, long polling
Thanks, updated.
ok tks b nhé
Bài xịn vậy mà không ai quan tâm nhỉ
Bài viết rất hay ạ 
Bài viết hay quá
Bài viết tuyệt vời quá hi vọng tác giả ra nhiều bài viết hơn
Chính xác, thằng docker compose này nguyên lý nó là vậy mà, nó tạo ra 1 network cho tất cả các service bên trong nó chạy chung. (có thể địng nghĩa hoặc dùng mặc định) Như mình nói thì nó đơn giản là "1 công cụ hỗ trợ" dựa trên Docker chứ không phải là 1 tính năng mới. Nó chả có gì hơn Docker cả, nó chỉ gom và thay vì trực tiếp dùng script để run thì bạn dùng 1 cái high level script đã được build sẵn để run và được kiểm duyệt và phát hành từ chính Docker mà thôi.
Mapping public port ai bảo bạn là ko phải để kết nối các container, service vốn tạo ra nó đã tách biệt rồi, cách các container giao tiếp là qua thứ nhất network hay tương tự như linking (nó sẽ hiểu theo container name). Nhưng đó là private. Mapping port cho phép các container đó giao tiếp 1 cách public, tức là ngay cả khi bạn ở bên ngoài, bạn cũng "có thể" nhìn thấy được các service hoạt động chung được. => vậy ko phải là kết nối giao tiếp giữa các container thì là gì nhỉ :-?
Chỗ này nè bạn