2

我正在为 mac 运行 docker,并且正在使用 docker 文件。我还使用 docker-compose 文件在同一个桥接网络上创建一个 mysql docker 实例和一个 sam 本地实例。

我能够将我的文件复制到 sam 本地实例并启动并运行 mysql 实例。

当我做一个 docker-compose --build

当我点击 API 上的任何端点时,我收到以下错误:调用 nodejs6.10 运行时时出错:来自守护进程的错误响应:允许的最小内存限制为 4MB

当我使用 sam local 执行此操作时,我的项目文件夹中没有 docker-compose 或 docker 文件。我不明白这个问题。

据我所知,这来自 docker for mac 运行的底层 linux vm。这些容器是 LXC 容器,它们需要至少 4mb 的内存。

如果我使用以下方式运行此图像:

docker run -it --memory-reservation 10000000 -v /var/run/docker.sock:/var/run/docker.sock -p 3000:3000 samlocal

我仍然遇到这个问题,这让我相信这是在 sam local 中实例化新 lambda 容器的问题。

我不确定是否有办法从容器中修改 LXC 的 hostconfig 文件,或者是否有其他解决方案。

我的 samlocal dockerfile 和 docker-compose 文件如下:

码头文件:

来自高山:3.6

环境版本=0.2.4

运行 apk 添加 --no-cache curl && \ curl -sSLO https://github.com/awslabs/aws-sam-local/releases/download/v ${VERSION}/sam_${VERSION}_linux_386.tar.gz && \ tar -C /usr/local/bin -zxvf /sam_${VERSION}_linux_386.tar.gz && \ apk del curl && \ rm -f /sam_${VERSION}_linux_386.tar.gz

运行 apk add --no-cache py-pip && pip install awscli

工作目录 /var/opt

曝光 3000

复制 。.

入口点 ["/usr/local/bin/sam"] CMD ["local","start-api","--host", "0.0.0.0","--docker-volume-basedir", "/1725_ecpo_lambda "]

码头工人撰写文件:

版本:“3”服务:

samlocal:构建:上下文:./ dockerfile:sam-local-docker.dockerfile 端口:-“3000:3000”卷:-/var/run/docker.sock:/var/run/docker.sock 网络:-后端

数据库:构建:上下文:./ dockerfile:mysql-docker.dockerfile 端口:- 3306:3306 卷:- db-data:/var/lib/mysql - /var/run/docker.sock:/var/run/docker .sock 网络:- 后端

网络:后端:

卷:数据库数据:

4

0 回答 0