Kubernetesを使用してこのアプリケーション(https://github.com/DivanteLtd/open-loyalty/)をGoogleクラウドに導入しようとしています。 このアプリケーションをデプロイするために使用されるインスタンスには、OSとしてDebian v4.9が含まれています。また、Docker、GCloud、Kubernetes、Komposeを導入ツールとしてインストールしました。フロントエンドとバックエンドの2つのドッカー画像を作成し、それらをドッカー作成ファイルにリンクしました。現在、フロントエンドモデルでは、フロントエンドのDockerfileのドッカーハブから(ノード:5)イメージを使用しました。以下は、フロントエンドコンテナのドッカーファイルです。Googleクラウドにアプリケーションをデプロイするときにエラーが発生する
FROM node:5
RUN apt-get update \
&& apt-get install -y ruby-full rubygems \
&& gem instal sass
RUN npm install -g gulp node-sass yarn
COPY . /var/www
WORKDIR /var/www
EXPOSE 3000
CMD npm rebuild node-sass && yarn install && gulp config --prod && gulp compile && gulp prod
私も使用してみました(ノード6)および(ノード7)画像としてではなく、エラーにノードのバージョンはv3.8.6すべきv5.12.0およびNPMバージョンのままです。 また、この問題のために特別に作られたnode-yarn(https://hub.docker.com/r/yarnpkg/node-yarn/)パッケージも試しました。
npm info it worked if it ends with ok
npm info using [email protected]
npm info using [email protected]
npm info readInstalled object
npm info ok
/bin/sh: 1: yarn: not found
可能な解決策は、Dockerfile内のノードのイメージバージョンを変更することができるが、それは誤りで毎回同じままです。しかし、(node:5)を使ってローカルマシン上で同じプロセスを実行すると、期待どおりに動作します。
コンテナを実行するために、私は "kompose up"を使ってdocker-compose.ymlファイルを実行し、ポッドを自動的にデプロイします。 docker-compose.ymlファイルを以下に示します。
backend:
container_name: open-loyalty-backend
image: gcr.io/open-loyalty/openloyalty_backend
links:
- elk
- db
- mail
ports:
- "8181:80"
extra_hosts:
- "web:127.0.0.1"
frontend:
container_name: open-loyalty-frontend
image: gcr.io/open-loyalty/openloyalty_frontend
ports:
- "8182:3000"
- "8183:3001"
- "8184:3002"
elk:
container_name: open-loyalty-elk
image: elasticsearch:2.2
db:
container_name: open-loyalty-postgresql
image: postgres
environment:
- POSTGRES_DB=openloyalty
- POSTGRES_USER=openloyalty
- POSTGRES_PASSWORD=openloyalty
mail:
container_name: open-loyalty-mail
image: mailhog/mailhog
ports:
- "8186:8025"
このエラーはありますか?
'docker build --no-cache .'を試しましたか? –
@ TarunLalwani私は試しましたが、うまくいきませんでした。 – vivekpadia70