将 Docker 和 Vagrant 与 Node 和 Express 结合使用

将 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 项目以及符号链接的 node 和 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,你能否告诉我在哪里可以提问?

相关内容