¿Cómo resuelvo el error de rechazo del gancho pre-recepción en la implementación de Dokku?

Actualmente estoy en el medio de implementar una aplicación Angular4 en una instancia de dokku, pero sigo recibiendo este error ! [remote rejected] develop -> master (pre-receive hook declined) ! [remote rejected] develop -> master (pre-receive hook declined) .

Estoy implementando de una twig de desarrollo a la maestra, así que ejecuto el command de implementación de modo que git push mediafactory develop:master

Estoy implementando a través de un Dockerfile, que se ve así;

 FROM node:carbon RUN mkdir -p /opt/app WORKDIR /opt/app COPY package*.json ./ RUN npm install --save @angular/cli@1.3.0 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"] 

Intenté correr

 sudo wget -O /etc/init/docker.conf https://raw.github.com/dotcloud/docker/master/contrib/init/upstart/docker.conf sudo service docker restart 

Pero, no parece resolver el problema.

Solutions Collecting From Web of "¿Cómo resuelvo el error de rechazo del gancho pre-recepción en la implementación de Dokku?"

Finalmente obtuve la solución al problema. Sé que alguien puede enfrentar el mismo problema que yo.

Hay tres razones principales por las que podría popup el problema anterior.

Primero, si caes en este error,

 remote: <app name> is currently being deployed. Exiting... To <dokku remote>:<app name> ! [remote rejected] develop -> master (pre-receive hook declined) 

Puede resolver fácilmente el problema anterior ejecutando estos dos commands desde su host dokku.

 $ sudo wget -O /etc/init/docker.conf https://raw.github.com/dotcloud/docker/master/contrib/init/upstart/docker.conf $ sudo service docker restart 

En segundo lugar, en cuanto a mi caso, era un problema con los permissions de la carpeta de modules de nodos globales que daría como resultado un bucle infinito cuando intente instalar globalmente @ angular / cli. Lamentablemente, incluso después de proporcionar los permissions, el error de pre-receive hook declined persistiría. Esto fue debido a la image @ ngular / cli que estaba usando.

El error se veía así

 ... /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" ... 

Puede resolver el error anterior agregando la siguiente línea a su Dockerfile , si y solo si el command $ npm config get prefix devuelve algo como /usr/local , de lo contrario, puede perder sus permissions.

 RUN chown -R $(whoami) $(npm config get prefix)/lib/node_modules 

Instale @ angular / cli globalmente en su contenedor con este command

 RUN npm install -g --unsafe-perm @angular/cli 

Ese es un trabajo que resuelve el problema.

El otro problema que podría causar el problema es agregar package-lock.json a su contenedor. También podría considerar ignorarlo, ya que puede causar el mismo problema. El nuevo Dockerfile por lo tanto se ve así;

 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"] 

En tercer y último lugar, si está utilizando una installation dokku de Vagrant , el error de pre-receive hook declined puede deberse a la baja asignación de memory a la máquina virtual.

Puede editar el Vagrantfile de su dokku repo y asignar más memory a su máquina virtual. Por ejemplo, puede boost la memory de 1 GB a 2 GB agregando la siguiente línea a su Vagrantfile ;

 config.vm.provider :virtualbox do |vb| vb.customize ["modifyvm", :id, "--memory", 2048] end 

Luego, ejecuta $ vangrant reload para aplicar los cambios que ha especificado en su file Vagrant.

Si el problema aún persiste y está utilizando mongoDB , es posible que desee mongoDB sus instancias de mongo y asegurarse de que se ejecuten como se esperaba. Puede verificar el estado de sus instancias de mongo ejecutando $ dokku mongo:list en su host dokku.

Finalmente, si nada de lo anterior ayuda, y el problema persiste, es posible que deba destruir su aplicación dokku y volver a crear una nueva. ¡TENGA UNA PRECAUCIÓN EXTRA ADICIONAL ANTES DE HACER ESTO!

Puede consultar un tutorial que escribí sobre la implementación de 2 aplicaciones en el mismo contenedor acoplable, con dokku