마침내 문제를 해결했습니다. 나는 누군가가 내가 가진 것처럼 똑같은 문제에 직면 할 수도 있음을 안다.
위의 문제가 발생할 수있는 주요 이유는 세 가지가 있습니다.
첫째, 당신은 당신이 쉽게 dokku 호스트에서이 두 명령을 실행하여 위의 문제를 해결할 수
remote: <app name> is currently being deployed. Exiting...
To <dokku remote>:<app name>
! [remote rejected] develop -> master (pre-receive hook declined)
이 오류에 착륙합니다.
$ 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
을 컨테이너에 추가하는 것입니다. 동일한 문제가 발생할 수 있으므로 무시해도 좋습니다. 새로운 Dockerfile은 다음과 같습니다. 당신이 Vagrant
dokku 설치를 사용하는 경우
셋째 및 마지막으로
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"]
은의 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