Docker-compose ví dụ mongodb

Trong bài viết này, chúng tôi sẽ giải thích cho bạn cách thiết lập mongoDB theo nhiều môi trường bằng cách sử dụng Docker-Compose

Env sản xuất

Môi trường sản xuất

Env phát triển

Một môi trường dành riêng cho sự phát triển

Kiểm tra Env

Một môi trường dành riêng cho thử nghiệm

Tại sao chúng ta cần nhiều môi trường?

Nếu bạn chỉ có một Môi trường sản xuất và bạn đang phát triển một tính năng mới, nếu có lỗi xảy ra, nó sẽ ảnh hưởng đến toàn bộ Môi trường sản xuất

Để thực hành tốt nhất, Bạn phải có Môi trường phát triển vì nếu bạn đang phát triển một tính năng mới trong Môi trường phát triển nếu có gì đó bị hỏng thì nó sẽ không ảnh hưởng đến Môi trường sản xuất

Hãy bắt đầu tạo nhiều môi trường

Hy vọng bạn đã quen thuộc với “Docker-Compose”

cấu trúc thư mục

Project
├── docker-compose.yml [File]
├── docker-entrypoint-initdb.d [Directory]
│ ├── mongo-init.js [File]

Hướng dẫn về TecoEric Cabrel TIOGO

Dưới đây là các bước

  1. Tạo một hình ảnh Docker của dự án
  2. Chạy hình ảnh Docker của cơ sở dữ liệu Mongo
  3. Chạy hình ảnh Docker của dự án
  4. Làm cho họ giao tiếp với nhau
  5. Sử dụng Docker Compose để dễ dàng quản lý chúng

Thiết lập dự án

Sao chép dự án từ kho GitHub này và theo dõi tệp Readme để thiết lập cục bộ. Nếu bạn không có cơ sở dữ liệu Mongo, bạn có thể làm theo hướng dẫn này để cài đặt nó;


git clone //github.com/tericcabrel/blog-tutorials.git

cd blog-tutorials/node-webapp-pdf

yarn install

cp .env.example .env
nano .env

yarn start

Nếu mọi thứ được cấu hình như mong đợi, bạn sẽ chạy dự án

Sao chép dự án từ GitHub và thiết lập cục bộ

Tạo một hình ảnh Docker của dự án

Xây dựng hình ảnh Docker của dự án khiến nó không thể biết được hệ điều hành. Chúng ta nên mong đợi hành vi tương tự bất kể hệ điều hành mà chúng ta chạy hình ảnh Docker

xây dựng dự án

Chúng tôi sử dụng Bản mô tả trong dự án, nhưng, Nút. js chỉ chạy tệp Javascript, vì vậy chúng tôi cần dịch mã. tập tin ts vào. js có thể đạt được bằng cách chạy


{
  "skipLibCheck": true,
}

5

💡

Nếu bạn gặp lỗi Bản mô tả từ các tệp nằm trong thư mục node_modules, hãy mở tệp


{
  "skipLibCheck": true,
}

6 của bạn, sau đó thêm đoạn mã sau


{
  "skipLibCheck": true,
}

Lệnh trên sẽ tạo một thư mục có tên


{
  "skipLibCheck": true,
}

7 chứa. js, nhưng nếu bạn để ý thì sẽ thấy thiếu thư mục

{
  "skipLibCheck": true,
}

8 chứa tệp handlebars

Điều này là do lệnh


{
  "skipLibCheck": true,
}

9 chỉ xử lý. ts và bỏ qua những tệp khác. Vì thư mục cần thiết cho dự án, chúng tôi phải sao chép nó vào trong thư mục bản dựng bằng lệnh bash


cp -r src/views build

Dưới đây là tóm tắt xây dựng dự án cho sản xuất


# update tsconfig.json to set "skipLibCheck"

yarn tsc

cp -r src/views build

Xây dựng hình ảnh Docker

Tại thư mục dự án gốc, tạo một tệp có tên


cp -r src/views build

0. Chúng tôi sẽ viết các hướng dẫn để xây dựng một hình ảnh. Mở tệp, sau đó thêm mã bên dưới


FROM node:18-alpine3.17

RUN mkdir -p /home/app

WORKDIR /home/app

COPY build ./build
COPY public ./public
COPY package.json .

RUN yarn install --frozen-lockfile --production

EXPOSE 4500

ENTRYPOINT ["node", "build/index.js"]

Lưu tệp, sau đó chạy lệnh bên dưới để tạo hình ảnh. Đây là chữ ký lệnh xây dựng Docker


 docker build /: 

Chủ Đề