DockerとDocker Composeを使用してsails js
のプロジェクトを作成しようとしています。私が欲しいのは、Dockerの内部にsails
コードを生成し、現在のディレクトリに構造体を生成することです。sails jsプロジェクトをドッキングしようとしています
Dockerfile
とdocker-compose.yml
があるため、ディレクトリが空ではないため、生成しようとすると、ディレクトリが空ではないというエラーが表示されます。
これはDockerfile
です:
FROM node:8.9.3
RUN mkdir -p /usr/src/app
WORKDIR /usr/src/app
COPY . /usr/src/app
RUN npm install -g sails
RUN sails new .
RUN sails lift
私は、現在のディレクトリの誤差が空ではありません取得します。
考えてみると、コードの生成とコピーが試行されました。
...
RUN npm install -g sails
RUN sails new .
# I do the COPY after generating the code
COPY . /usr/src/app
RUN sails lift
これは、ローカル環境でエラーが発生しないため、生成されたコードがないため動作しているようです。
多分、このプロセスが間違っていて、それを依存関係としてインストールしてから、コードを生成するためにコンテナをdocker-compose
で実行する必要があります。しかし、空でないディレクトリにコードを生成しようとしても同じ問題があります。
あなたが達成しようとしているものは混乱しています。 'sails new'コマンドは、ビルドコンテキストから既にコピーしているソースコードを作成するコマンドです。私はあなたがどちらか一方をしていると思います(両方ではない)。プロジェクトがすでに 'sails new'でローカルに作成されていた場合、なぜ' docker build'時にそれを実行しますか? –
Docker内で 'sails'コードを生成するのは正しくないかもしれません。おそらく私は地元でそれを行い、Dockerのイメージでそれらをコピーする必要があります。しかし、ローカルノードを使用したくない場合は、Dockerを使用してインストールしたいのですが、空ではないため、現在のディレクトリにコードを生成できないという問題があります。 – abaracedo
2回目の反復で、コピーの後にこの 'WORKDIR/usr/src/app'を追加する必要があります –