私はついにこの問題を解決しました。私は誰かが私と同じ問題に直面するかもしれないことを知っている。
なぜ上記の問題が発生するのかという3つの主な理由があります。
まず、あなたがこのエラーに上陸した場合、
remote: <app name> is currently being deployed. Exiting...
To <dokku remote>:<app name>
! [remote rejected] develop -> master (pre-receive hook declined)
あなたが簡単にdokkuホストからこれらの2つのコマンドを実行することにより、上記の問題を解決することができます。
$ sudo wget -O /etc/init/docker.conf https://raw.github.com/dotcloud/docker/master/contrib/init/upstart/docker.conf
$ sudo service docker restart
は第二に、私の場合と同様に、それはあなたが@角度/ CLIをインストールグローバルしようとすると、無限ループにつながるグローバルノードモジュールフォルダのアクセス権に問題でした。残念ながら、許可を与えた後でさえ、pre-receive hook declined
エラーは持続します。これは、私が使用していた@ ngular/cli画像のためです。
エラーはあなたが、あなたのDockerfile
に次の行を追加することにより、上記のエラーを解決することができ、この
...
/usr/local/lib/node_modules/@angular/cli/node_modules/node-sass/.node-
gyp/8.9.1
gyp WARN EACCES user "nobody" does not have permission to access the
dev dir
"/usr/local/lib/node_modules/@angular/cli/node_modules/node-sass/.node-
gyp/8.9.1"
gyp WARN EACCES attempting to reinstall using temporary dev dir
"/usr/local/lib/node_modules/@angular/cli/node_modules/node-sass/.node-gyp"
...
のように見えた場合にのみ、/usr/local
のようなコマンド$ npm config get prefix
返し何か、そうでなければ、台無しにあなたの許可をしてもよいです。
RUN chown -R $(whoami) $(npm config get prefix)/lib/node_modules
はそれが問題を解決を回避するのです。このコマンド
RUN npm install -g --unsafe-perm @angular/cli
であなたの容器にグローバル@角度/ CLIをインストールします。
問題を引き起こす可能性のあるその他の問題は、コンテナにpackage-lock.json
を追加しています。同じ問題が発生する可能性があるため、無視することも考えられます。 したがって、新しいDockerファイルは次のようになります。第三に、最後
FROM node:carbon
RUN mkdir -p /opt/app
WORKDIR /opt/app
RUN chown -R $(whoami) $(npm config get prefix)/lib/node_modules
RUN npm install -g --unsafe-perm @angular/cli
COPY package.json .
RUN npm install --only=production
COPY .angular-cli.json .
COPY . .
RUN ng build --aot -prod
ENV APP_ID setYourAppId
ENV MASTER_KEY setYourMasterKey
ENV DATABASE_URI setMongoDBURI
EXPOSE 1337
CMD ["npm", "start"]
あなたはVagrant
dokkuインストールを使用している場合は、pre-receive hook declined
エラーが仮想マシンに低メモリの割り当てが原因である可能性があり。
あなたのdokku repoのVagrantfile
を編集して、仮想マシンにさらに多くのメモリを割り当てることができます。たとえば、Vagrantfile
に次の行を追加すると、メモリを1GBから2GBに増やすことができます。
config.vm.provider :virtualbox do |vb|
vb.customize ["modifyvm", :id, "--memory", 2048]
end
その後、あなたはあなたのベイグラントファイルで指定された変更を適用するには$ vangrant reload
を実行します。
問題が引き続き発生し、mongoDB
を使用している場合は、mongoインスタンスをチェックアウトして期待どおりに動作しているかどうかを確認することができます。 dokkuホストで$ dokku mongo:list
を実行すると、mongoインスタンスのステータスを確認できます。
最後に、上記のいずれにも役立つことがなく、それでも問題が解決しない場合は、ドックアプリを破棄して新しいアプリケーションを再作成する必要があります。これを行う前に、追加の注意を払ってください!!!
You may checkout a tutorial I wrote about deploying 2 apps in the same docker container, with dokku