私は2つのマイクロサービス画像、Go Rest APIとReactフロントエンドをAWS ECR内に持っています。私はElastic Beanstalkを使用します。今私は彼らが同じマシン上にいると信じているので、Reactアプリケーションをlocalhost:8080上のAPIからデータを取得するように設定しました。以下は両方のDockerfilesです。彼らは私の開発環境で働いていたので、私はECRにそれらを押し込んだ。AWS EBでこのマルチコンテナドッカーのマイクロサービスアプリのdockerrun.aws.jsonを作成する方法を教えてもらえますか?
GolangのREST APIフロントエンドアプリケーションに反応
FROM node:8.4.0-alpine
WORKDIR /usr/src/app
ENV NPM_CONFIG_LOGLEVEL warn
RUN npm i -g serve
CMD serve -s build/app -p 3000
EXPOSE 3000
COPY package.json package-lock.json ./
RUN npm install
COPY . .
RUN npm run build
ため
FROM golang
ADD . /go/src/vsts/project/gorestapi
WORKDIR /go/src/vsts/project/gorestapi
RUN go get github.com/golang/dep/cmd/dep
RUN dep ensure
RUN go install .
ENTRYPOINT /go/bin/gorestapi
EXPOSE 8080
DockerfileためDockerfileボリュームはまだ宣言する必要があり、またはマウントポイント場合、私は私が知っているすべては私で、知りませんdockerrun jsonのバージョンをv2に、名前、イメージ、およびポートマッピングをコンテナ定義に配置する必要があります。ほとんどのサンプルでは、プライベートレポのアプリを表示していないし、それらのボリューム、マウントポイント、リンクを持っていないので、使い方が分かりません。私は、以下のいずれかを試してみましたが、それは
編集]を動作しませんでした。(私はDockerrun.aws.jsonは、ボリュームのホストのソースパスは私のマシンでのパスであることを期待して変更私が間違っている場合は修正してください。)
{
"AWSEBDockerrunVersion": 2,
"volumes": [
{
"name": "webapp",
"host": {
"sourcePath": "/webapp"
}
},
{
"name": "gorestapi",
"host": {
"sourcePath": "/gorestapi"
}
}
],
"containerDefinitions": [
{
"name": "gorestapi",
"image": "<acctId>.dkr.ecr.us-east-1.amazonaws.com/dev/gorestapi:latest",
"essential": true,
"memory": 512,
"portMappings": [
{
"hostPort": 8080,
"containerPort": 8080
}
],
"links": [
"webapp"
],
"mountPoints": [
{
"sourceVolume": "gorestapi",
"containerPath": "/go/src/vsts/project/gorestapi"
}
]
},
{
"name": "webapp",
"image": "<acctId>.dkr.ecr.us-east-1.amazonaws.com/dev/webapp:latest",
"essential": true,
"memory": 256,
"portMappings": [
{
"hostPort": 3000,
"containerPort": 3000
}
],
"mountPoints": [
{
"sourceVolume": "webapp",
"containerPath": "/usr/src/app"
}
]
}
]
}
パスに正しい値を指定しましたか?
ボリュームのソースパスには何を指定する必要がありますか?そのイメージのソースが置かれているフォルダの名前?またはビルドフォルダ?プロジェクト全体か?また、マウントポイントのコンテナパス、それは?以前ボリュームとマウントポイントで試してみましたが、展開に失敗しました –
ボリュームソースパスは、指定されたコンテナパス(コンテナ内のフォルダ)にマウントするホスト上のフォルダの絶対パスです。私は、展開が失敗したときにエラーログを見ることに興味があります。 – ArnoldKO
私は現在エラーログを見る方法を考えていますが、上記の編集を見てください –