У меня есть простой node.app с этим package.json:
{
"name": "docker_web_app",
"version": "1.0.0",
"description": "Node.js on Docker",
"author": "xxxxx",
"main": "server.js",
"scripts": {
"start": "node server.js"
},
"dependencies": {
"express": "^4.16.1",
"myuser-deploy": "git+ssh://[email protected]:myuser/deploy.git"
}
}
Обычно, когда я запускаю "нпм я", он устанавливает все зависимости, а также одну из github. У меня есть SSH, который я ранее настроил с помощью github. Пока все работает нормально.
Теперь я добавил поддержку Docker для своего приложения, вот так
Dockerfile:
FROM node:carbon
# Create app directory
WORKDIR /usr/src/app
# Install app dependencies
# A wildcard is used to ensure both package.json AND package-lock.json are copied
# where available (npm@5+)
COPY package*.json ./
RUN npm install
# If you are building your code for production
# RUN npm install --only=production
# Bundle app source
COPY . .
EXPOSE 8080
CMD [ "npm", "start" ]
docker-compose.yml:
version: "3"
services:
test-service:
build: .
image: test-service
container_name: test-service
working_dir: /usr/src/app
user: node
restart: always
ports:
- '3001:3000'
Когда я запускаю docker-compose up, он выдает такую ошибку:
> npm ERR! Error while executing: npm ERR! /usr/bin/git ls-remote -h -t
> ssh://[email protected]/myuser/deploy.git npm ERR! npm ERR! Host key
> verification failed. npm ERR! fatal: Could not read from remote
> repository. npm ERR! npm ERR! Please make sure you have the correct
> access rights npm ERR! and the repository exists. npm ERR! npm ERR!
> exited with error code: 128
>
> npm ERR! A complete log of this run can be found in:
Что я могу сделать с докером, чтобы он использовал мои SSH-ключи?
Я могу это подтвердить. Мой докер может разговаривать с внешним миром. С других репозиториев (NPM) тащу без проблем.
Если вы используете частный репозиторий git, вам нужно будет добавить в изображение свой ssh-ключ, используемый для Github.
извлекая из частного репозитория git, вы должны использовать либо ключ ssh, либо токен github.


Можете ли вы убедиться, что вы установили переменные прокси в docker-compose, чтобы ваш контейнер мог связываться с внешним миром?