Назад | Перейти на главную страницу

Использование Docker и Vagrant с Node и Express

Итак, прежде чем я начну, я новичок в этом, и, поскольку я лучше всего учусь, когда отдаю себе проект, я хотел, чтобы пользователь Vagrant и Docker создал простой сервер Node и Express с общей папкой вне фактического контейнера. Я следил за учебником, в котором объяснялись похожие вещи с nginx и php (которые работали), поэтому, пожалуйста, если вопрос не очень хорошо структурирован или мой английский не идеален, дайте мне знать!

Как я уже сказал, я хотел немного попрактиковаться в Docker (недавно начал с ним работать) и изучить Vagrant. Это мой Dockerfile:

FROM ubuntu:latest

RUN apt-get update
RUN apt-get install -y software-properties-common
RUN apt-get update
RUN apt-get -y dist-upgrade
RUN apt-get install -y nodejs npm

RUN cd /home
RUN npm install -g express
RUN npm install -g express-generator
RUN ln -s /usr/bin/nodejs /usr/bin/node
RUN express projekt
RUN cd projekt && npm install
VOLUME ["/home/projekt/"]

EXPOSE 3000
RUN DEBUG=projekt:* /home/projekt/bin/www

Так же projekt пишется так намеренно, поскольку на моем языке. Поэтому я в основном хотел установить node и npm. Затем я хотел сгенерировать проект Express, а также символьный узел и nodejs. Проблема в том, что последняя команда не работает. Он говорит:

/bin/sh: 1: /home/projekt/bin/www: not found

Это мой Vagrantfile:

Vagrant.configure(2) do |config|
  config.vm.synced_folder "./www", "/home/projekt"   # Sync'd folder
  config.ssh.port = "22"
  config.vm.provider "docker" do |d|
    d.build_dir = "./Docker" # specifies the path to the Dockerfile
    d.ports = [ '80:3000' ]  # Forwards port 8080 from the host to the Docker Container port 80
  end
end

Вот так выглядит моя корневая папка проекта:

.
├── Docker
│   └── Dockerfile
├── Vagrantfile
└── www

2 directories, 2 files

Также, если этот вопрос не подходит для этого StackExchange, не могли бы вы направить меня, где я мог бы это задать!