Mac 用の docker を実行しており、docker ファイルを使用しています。また、docker-compose ファイルを使用して、同じブリッジ ネットワーク上に mysql docker インスタンスと sam ローカル インスタンスを作成しています。
ファイルを sam ローカル インスタンスにコピーし、mysql インスタンスを起動して実行することができました。
docker-compose --build を実行すると
API のいずれかのエンドポイントにヒットすると、次のエラーが表示されます: nodejs6.10 ランタイムの呼び出しエラー: デーモンからのエラー応答: 許可される最小メモリ制限は 4MB です
プロジェクトフォルダーだけの中にdocker-composeまたはdockerファイルなしでsam localを使用してこれを実行すると。この問題がわかりません。
私が知る限り、これは docker for mac が実行する基礎となる linux vm から来ています。これらのコンテナは LXC コンテナであり、最低 4 MB のメモリが必要です。
次を使用してこのイメージを実行すると:
docker run -it --memory-reservation 10000000 -v /var/run/docker.sock:/var/run/docker.sock -p 3000:3000 samlocal
私はまだこの問題を抱えています。これは、これがサムローカル内で新しいラムダコンテナをインスタンス化する際の問題であると私が信じるように導くものです.
コンテナー内から LXC の hostconfig ファイルを変更する方法があるかどうか、またはこの問題に対する他の解決策があるかどうかはわかりません。
私のsamlocal dockerfileとdocker-composeファイルは次のとおりです。
ドッカーファイル:
高山から:3.6
環境バージョン=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_${バージョン}_linux_386.tar.gz && \ apk デル カール && \ rm -f /sam_${バージョン}_linux_386.tar.gz
RUN apk add --no-cache py-pip && pip install awscli
WORKDIR /var/opt
露出3000
コピー 。.
ENTRYPOINT ["/usr/local/bin/sam"] CMD ["local","start-api","--host", "0.0.0.0","--docker-volume-basedir", "/1725_ecpo_lambda "]
DOCKER-COMPOSE ファイル:
バージョン: 「3」 サービス:
samlocal: ビルド: コンテキスト: ./ dockerfile: sam-local-docker.dockerfile ポート: - "3000:3000" ボリューム: - /var/run/docker.sock:/var/run/docker.sock ネットワーク: - バックエンド
db: ビルド: コンテキスト: ./ dockerfile: mysql-docker.dockerfile ポート: - 3306:3306 ボリューム: - db-data:/var/lib/mysql - /var/run/docker.sock:/var/run/docker .sock ネットワーク: - バックエンド
ネットワーク: バックエンド:
ボリューム: データベース データ: