我正在使用docker for mac而我正在使用docker文件。我还使用docker-compose文件在同一个桥接网络上创建一个mysql docker实例和一个sam本地实例。
我能够将我的文件复制到sam本地实例并启动并运行mysql实例。
当我做一个docker-compose --build
时当我点击API上的任何端点时出现以下错误:错误调用nodejs6.10运行时:来自守护程序的错误响应:允许的最小内存限制为4MB
当我使用sam本地执行此操作而没有仅仅在我的项目文件夹中的docker-compose或docker文件时。我不明白这个问题。
据我所知,这来自底层的linux vm,即docker for mac运行。这些容器是LXC容器,它们需要的最小内存为4mb。
如果我使用以下方式运行此图像:
docker run -it --memory-reservation 10000000 -v /var/run/docker.sock:/var/run/docker.sock -p 3000:3000 samlocal
我仍然遇到这个问题,这让我相信这是在本地sam中实例化新lambda容器的问题。
我不确定是否有办法从容器内修改LXC的hostconfig文件,或者是否有其他解决此问题的方法。
我的samlocal dockerfile和docker-compose文件如下:
FROM alpine:3.6
ENV VERSION = 0.2.4
RUN apk add --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& amp ;& amp; \ apk del curl&& \ rm -f / sam _ $ {VERSION} _linux_386.tar.gz
RUN apk add --no-cache py-pip&& pip install awscli
WORKDIR / var / opt
EXPOSE 3000
COPY。
ENTRYPOINT [“/ 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 网络: - 后端
网络: 后端:
卷: DB-数据: