部署到服务器上时,Docker构建卡在Webpack编译上

x33g5p2x  于 2023-03-01  发布在  Docker
关注(0)|答案(1)|浏览(112)

我有一个在Docker容器中使用strapi的应用程序,我是通过docker compose up --build运行这个应用程序的,docker compose up --build会先构建应用程序,然后再运行它。
我遇到的问题是,虽然这在我家里的电脑上可以工作,但当我在服务器上尝试它时,它会在试图编译webpack时永远挂起。
日志也没能显示任何有趣的东西,这让我对下一步该怎么做有点困惑。

guicsvcw

guicsvcw1#

我最终解决了这个问题,在斯特拉皮不和的人的帮助下。
答案是应用程序在构建过程中内存不足,Docker文档建议最低2gb,而基本的digital-oceans droplet只有1gb。
为了解决这个问题,我用一个脚本来分割构建过程:
restart-server.sh

#! /bin/sh
cd /srv/deployed_project

# close any running containers
docker compose down

# build each dockerfile individually, to avoid overloading memory.
cd /srv/deployed_project/nginx
docker build -f nginx.Dockerfile --target production .

cd /srv/deployed_project/strapi
docker build -f strapi.Dockerfile --target production .

cd /srv/deployed_project/nextjs
docker build -f nextjs.Dockerfile --target production .

# -d detaches the containers
cd /srv/deployed_project
docker compose up -d

相关问题