Cách Dockerize các dự án
Dockerfile để làm gì:
- Đưa source code vào container
- Cài đặt công cụ để chạy dự án
Dockerfile commands:
FROM image nào đó // kéo image đúng version, từng container là môi trường độc lập, nôm na như 1 server về, chọn image nguồn official, verified, sponsored, chọn base image là alpine
WORKDIR /app // chỉ định thư mục làm việc
COPY .. // copy source code vào container, dấu . đầu là vị trí hiện tại của Dockerfile, nếu Dockerfile hiện tại cùng cấp với các file dự án sẽ copy hết file dự án, dấu . thứ 2 là vị trí hiện tại trong container, chính là WORKDIR, là /app
RUN // chạy
ENV // khai báo biến
EXPOSE 80 // ứng dụng trong container chạy trong port nào, trong môi trường container chạy web port 80, từ cách server khác ko thể truy cập vào container này, nên map port container ra ngoài server, để các server khác có thể truy cập đc với port 8888 // 8888:80
CMD // xác định lệnh và giá trị mặc định
ENTRYPOINT // giữ nguyên lệnh cố định và cho phép lệnh được chỉ định khi chạy container thêm vào cuối của nó
Tư duy viết Dockerfile tối ưu:
non root user // chạy ứng dụng bằng user khác
base image // chọn phù hợp, loại nào nhẹ, tự build...
multipe stage //giảm kích thước docker image