Я новичок в Docker, и у меня есть некоторые проблемы с процессом загрузки изображений в личный реестр и извлечения их с помощью файла docker-compose.yml на другом компьютере в нашем офисе.
В моем проекте 2 папки: nginx и клиент.
Nginx - это сервер, а клиент - приложение create-реагировать.
папка nginx:
default.conf:
upstream client {
server client:3000;
}
server {
listen 80;
location / {
proxy_pass http://client;
}
location /sockjs-node {
proxy_pass http://client;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "Upgrade";
}
}
Dockerfile:
FROM nginx
COPY ./default.conf /etc/nginx/conf.d/default.confd
папка клиента:
nginx / default.conf:
server {
listen 3000;
location / {
root /usr/share/nginx/html;
index index.html index.htm;
}
}
Dockerfile:
FROM node:alpine as builder
ARG REACT_APP_NODE_ENV
ENV REACT_APP_NODE_ENV $REACT_APP_NODE_ENV
WORKDIR /app
COPY ./package.json ./
RUN npm i
COPY . .
RUN npm run build
FROM nginx
EXPOSE 3000
COPY ./nginx/default.conf /etc/nginx/conf.d/default.conf
COPY --from=builder /app/build /usr/share/nginx/html
За пределами этих двух папок у меня есть файл docker-compose.yml:
version: '3'
services:
nginx:
restart: always
build:
dockerfile: Dockerfile
context: ./nginx
ports:
- '3050:80'
client:
build:
context: ./client
dockerfile: Dockerfile
args:
- REACT_APP_NODE_ENV=production
volumes:
- /app/node_modules
- ./client:/app
Когда я делаю внутри папки проекта «docker-compose up --build», все работает, как я ожидаю.
Теперь я хочу нажать на изображения и перенести их на другой компьютер в офисе.
Сначала я поместил 2 изображения (nginx и клиент) в реестр с помощью следующих команд на терминале:
docker build -t orassayag/osr_streamer_nginx:v1.0 .
docker tag orassayag/osr_streamer_nginx:v1.0 <office_ip_address>:5000/orassayag/osr_streamer_nginx:v1.0
docker push <office_ip_address>:5000/orassayag/osr_streamer_nginx:v1.0
docker build -t orassayag/osr_streamer_client:v1.0 .
docker tag orassayag/osr_streamer_client:v1.0 <office_ip_address>:5000/orassayag/osr_streamer_client:v1.0
docker push <office_ip_address>:5000/orassayag/osr_streamer_client:v1.0
Затем я обновил свой файл docker-compose.yml следующим образом:
version: '3'
services:
nginx:
image: <office_ip_address>:5000/orassayag/osr_streamer_nginx
restart: always
build:
context: ./nginx
dockerfile: Dockerfile
ports:
- '3050:80'
client:
image: <office_ip_address>:5000/orassayag/osr_streamer_client
build:
context: ./client
dockerfile: Dockerfile
args:
- REACT_APP_NODE_ENV=production
volumes:
- /app/node_modules
- ./client:/app
Я пошел на другой компьютер, создал папку с именем «TestDeploy», и на терминале я запускаю «docker-compose build --pull», и я получаю следующую ошибку:
"ОШИБКА: путь сборки C: \ Or \ Web \ StreamImages \ TestDeploy \ nginx либо не существует, либо недоступен, либо не является допустимым URL-адресом."
Что я делаю не так?
Мне нужна помощь.