Kích thước đống javascript

Thông thường, tôi chạy ứng dụng của mình ở định dạng npm run dev và trong gói tệp. json has an command as side undernpm run dev and in the package. tệp json có tập lệnh như bên dưới

Nội dung chính Hiển thị

"scripts": {
        "dev": "nodemon server.ts",
    }

Ở đây mọi thứ hoạt động tốt

Tôi đang xây dựng docker hình ảnh dựa trên dockerfile dưới đây

FROM node:14.17-alpine

RUN npm i -g 


RUN npm i -g nodemon

RUN apk add g++ make python


WORKDIR /app 

ADD package*.json ./

RUN npm install

ADD . .

CMD npm run dev

Tôi có thể xây dựng thành công cấu hình ảnh bằng cách sử dụng

 docker build --tag test-backend .

And when I image this image

docker run  -it -p 3003:3003 test-backend

Tôi đang đối mặt với sự liên tục hoạt động của bộ nhớ JavaScript



[31:0x55effca3d8e0]    57856 ms: Mark-sweep [reduce] 989.3 [996.6] -> 988.2 [997.9] MB, 1275.1 / 0.0 ms  [average mu = 0.173, current mu = 0.035] allocation failure scavenge might not succeed
[31:0x55effca3d8e0]    59100 ms: Mark-sweep [reduce] 989.3 [999.9] -> 988.5 [999.4] MB, 1206.7 / 0.0 ms  [average mu = 0.107, current mu = 0.030] allocation failure scavenge might not succeed




FATAL ERROR: Ineffective mark-compacts near heap limit Allocation failed - JavaScript heap out of memory
Aborted
[nodemon] app crashed - waiting for file changes before starting...

Lý do ăn xin nguyên nhân này là gì ??

Với nhiều dự án mà tôi yêu thích chạy trên các trường hợp đám mây nhỏ, có một vấn đề mà tôi thường gặp là phải xây dựng một thùng chứa Docker trên máy như vậy. JavaScript đáng sợ bỏ bộ nhớ lỗi, dẫn đến lỗi xây dựng. May mắn thay, có một cách rẻ tiền và dễ dàng để giải quyết vấn đề này. Lỗi đống JavaScript hết bộ nhớ, dẫn đến lỗi xây dựng. May mắn thay, có một cách rẻ tiền và dễ dàng để giải quyết vấn đề này

Tại sao các bản dựng của chúng tôi đã thất bại

Mặc dù các trường hợp đám mây nhỏ thường tốt cho các ứng dụng không nhận được một cuộc tấn công lưu lượng truy cập, nhưng thường có một yếu tố có thể rất hạn chế. bộ nhớ. Một VPS nhỏ thường đi kèm với 0,5-1 GIB bộ nhớ. Tuy nhiên, các quy trình xây dựng hiện đại của các ứng dụng JavaScript dễ dàng vượt qua các giới hạn này và tôi đã trải nghiệm qua vấn đề này với nhiều ứng dụng dựa trên Strapi và Next. js. Điều xấu về nó? . kỉ niệm. Một VPS nhỏ thường đi kèm với 0. 5-1 GiB bộ nhớ. Tuy nhiên, các quy trình xây dựng ứng dụng JavaScript hiện đại dễ dàng vượt quá các giới hạn này và tôi đã gặp sự cố này với nhiều strapi và next. ứng dụng dựa trên js. Điều tồi tệ về nó?

Giải pháp rẻ tiền và dễ dàng

Cách dễ nhất để giải quyết vấn đề này là xây dựng bộ ảnh cục bộ và sau đó chuyển nó sang VPS. Đây là nơi lưu lệnh và tải xuống của Docker hữu ích. lưu và tải các lệnh có ích

docker save  | gzip > .tar.gz

Cho phép tôi lưu một hình ảnh được xây dựng cục bộ vào tệp. hắc ín. gz, từ đó có thể tải xuống trên các máy khác thông qua

docker load -i 

Do đó, đối với các trường hợp đơn giản mà tôi không muốn sử dụng các dịch vụ bên ngoài bổ sung để xây dựng một ứng dụng, tôi đã thiết lập một tập lệnh được gọi từ một cái móc git

#!/bin/bash

# build locally
docker build -t sample-app .
# expor to .tar.gz
docker save sample-app | gzip > sample-app.tar.gz
# transfer .tar.gz to remote machine
scp sample-app.tar.gz [email protected]:/tmp
# invoke load on remote machine
ssh [email protected] docker load -i /tmp/sample-app.tar.gz

Alternative option

Mặc dù quá trình giải thích ở trên có thể là cách dễ nhất mà không có bất kỳ dịch vụ và cài đặt bổ sung nào, nhưng có những lựa chọn thay thế mang lại lợi nhuận với chi phí phức tạp

Sử dụng Docker register register. Thay vì chuyển hình ảnh trong tệp. hắc ín. gz, thường là một ý tưởng tốt hơn để sử dụng Docker register. Đối với các lần tái lập tư nhân, chúng tôi phải trả một khoản phí nhỏ hàng tháng cho dịch vụ này trên Docker. com hoặc tự lưu trữ Docker register.
Thay vì chuyển hình ảnh trong một. hắc ín. gz, thì tốt hơn hết là sử dụng sổ đăng ký docker. Đối với các kho lưu trữ riêng, chúng tôi cần trả một khoản phí nhỏ hàng tháng cho dịch vụ này trên docker. com hoặc tự lưu trữ sổ đăng ký docker.

Sử dụng máy chủ xây dựng bên ngoài. Có vô số dịch vụ có sẵn để xây dựng các ứng dụng của chúng tôi và một điểm mà lợi thế của việc sử dụng dịch vụ đó đạt được rất nhanh. Khi chúng tôi sử dụng Docker. com để lưu trữ hình ảnh của chúng tôi, cũng có khả năng xây dựng hình ảnh trên máy chủ của họ. Có vô số dịch vụ có sẵn để xây dựng ứng dụng của chúng tôi và điểm mà lợi ích của việc sử dụng dịch vụ như vậy đạt được rất nhanh. Khi chúng tôi đang sử dụng docker. com để lưu trữ hình ảnh của chúng tôi, cũng có khả năng xây dựng hình ảnh trên máy chủ của họ

Câu hỏi

Docker JavaScript là gì?npm run dev và trong gói. tệp json có tập lệnh như bên dưới

"tập lệnh". {. {

  . "dev":"máy chủ gật đầu. ts",

    }}

Ở đây mọi thứ hoạt động tốt

Tôi xây dựng docker hình ảnh dựa trên dockerfile dưới đây

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

Từ nút. 14,17-nútalpine. 14. 17-núi cao

Chuyển [email được bảo vệ]npmi-g . 2. 4typescript@4.2.4

Chạy NPMI-Gnodemonnpmi-g

. ] Phân bổ thất bại Scavenge có thể không thành công31. 0x55effca3d8e0]    57856ms< . :Đánh dấu-quét[giảm . 3] 989.3[996. 6]->988. 2[997. 9]MB,1275. 1/0. 0ms  [trung bình mu . 173= 0.173,hiện tại mu= . 035]phân bổ thất bại nhặt rác might notsucceed

. ] Phân bổ thất bại Scavenge có thể không thành công31. 0x55effca3d8e0]    59100 ms< . :Đánh dấu-quét[giảm . 3]989.3[999. 9]->988. 5[999. 4]MB,1206. 7/ 0. 0ms  [trung bình mu . 107=0.107,hiện tại mu= . 030]phân bổ thất bại nhặt rác might notsucceed

Với nhiều dự án sở thích của tôi chạy trên các trường hợp đám mây nhỏ, có một vấn đề mà tôi thường gặp là phải xây dựng một thùng chứa Docker trên máy như vậy. JavaScript đáng sợ bỏ bộ nhớ lỗi, dẫn đến lỗi xây dựng. May mắn thay, có một cách rẻ tiền và dễ dàng để giải quyết vấn đề này. --- JS dấu vết ngăn xếp--->

. ] Phân bổ thất bại Scavenge có thể không thành côngERROR. Không hiệu quả dấu-compact gầnheap limit Allocation failed-JavaScript heap out of memory

] Scavenge Failed Partition could not to public

Lỗi nghiêm trọng. Các lần cộng đồng hóa không hiệu quảnodemon]ứng dụng gặp sự cố . . . . . . . . . . . . . . . . . . . . . . . . . . . . . -waiting forfilechanges before starting.. .

Abort

Câu trả lời

[Nodemon]Ứng dụng được ủ các forfilechange đã đợi trước khi bắt đầu

Lý do ăn xin nguyên nhân này là gì ??

Tôi đang cố gắng giải quyết các vấn đề tương tự. Về cơ bản, sự cố xảy ra vì quá trình này sẽ nhận được nhiều bộ nhớ hơn bởi hệ thống. Ví dụ. nếu máy của bạn có bộ nhớ 2GB, quá trình tải xuống bộ nhớ có sẵn

This active setting for me. Tôi hy vọng những bình luận này có thể giúp bạn

Làm cách nào để chặn JavaScript ra khỏi bộ nhớ?

Mở menu bắt đầu, tìm kiếm cài đặt hệ thống nâng cao và lựa chọn phù hợp nhất. In the field Name, input Node_Options. In field value variable, input--Max-cũ-Space-Size = 4096. Giá trị này sẽ bổ sung 4GB bộ nhớ ảo vào nút

In sao JavaScript ra khỏi bộ nhớ?

Điều này thường xảy ra do các dự án lớn hơn trong lượng bộ nhớ mặc định được phân bổ bởi nút [1. 5GB] là không đủ để hoàn thành lệnh thành công. .

Điều gì đã xảy ra khi Docker hết nhớ?

Theo định nghĩa, nếu xảy ra lỗi bên ngoài bộ nhớ [OOM], kernel sẽ hủy quá trình trong một thùng chứa. nhân giết chết các tiến trình trong vùng chứa .

Docker JavaScript là gì?

Docker là một công cụ cho phép bạn đóng gói môi trường để chạy ứng dụng của mình cùng với ứng dụng chính. Bạn có thể thực hiện điều này đơn giản như bao gồm một tệp duy nhất có tên Dockerfile với dự án của bạn. công cụ cho phép bạn đóng gói môi trường để chạy ứng dụng của mình cùng với chính ứng dụng đó

Chủ Đề