2017-11-27 10 views
0

Vue.js + Nuxt.js 앱을 컨테이너로 변환하려고합니다. 이상한 점은 docker run -p 3000:3000 <image_name>을 실행할 때 앱에 액세스 할 수 있지만 docker-up up 명령을 실행하면 안된다는 것입니다. docker build -t <image_name> . 다음 docker run -p 3000:3000 <image_name> 작업을 실행, 전술 한 바와 같이Duxerizing Nuxt.js app : 도커가 작동하지만 도커가 작성되지 않습니다

FROM node:8.9.1-alpine 

# Create app dir 
RUN mkdir -p /usr/src/app 
WORKDIR /usr/src/app 

# Install deps 
RUN apk update && apk upgrade && apk add git 

COPY package*.json /usr/src/app/ 
RUN npm install 
# If building for production: 
# RUN npm install --only=production 
COPY . /usr/src/app/ 

ENV HOST 0.0.0.0 
EXPOSE 3000 

# Start command 
CMD [ "npm", "run", "dev" ] 

:

내 Dockerfile은 다음과 같습니다. 다음과 같은 고정 표시기-compose.yml 파일을 그러나

:

docker-compose up 
Creating network "vueui_default" with the default driver 
Creating vueui_web_1 ... 
Creating vueui_web_1 ... done 
Attaching to vueui_web_1 
web_1 | 
web_1 | > [email protected] dev /usr/src/app 
web_1 | > nuxt 
web_1 | 
web_1 | 2017-11-27T06:23:52.962Z nuxt:axios BaseURL: http://localhost:3000/api (Browser: /api) 
web_1 | 2017-11-27T06:23:57.822Z nuxt:build App root: /usr/src/app 
web_1 | 2017-11-27T06:23:57.823Z nuxt:build Generating /usr/src/app/.nuxt files... 
web_1 | 2017-11-27T06:23:57.855Z nuxt:build Generating files... 
web_1 | 2017-11-27T06:23:57.883Z nuxt:build Generating routes... 
web_1 | 2017-11-27T06:23:58.018Z nuxt:build Building files... 
web_1 | 2017-11-27T06:23:58.429Z nuxt:build Adding webpack middleware... 
web_1 | ERROR Failed to compile with 3 errors06:24:28 
web_1 | 
web_1 | error in ./layouts/default.vue 
web_1 | 
web_1 | Module build failed: Error: Missing binding /usr/src/app/node_modules/node-sass/vendor/linux_musl-x64-57/binding.node 
web_1 | Node Sass could not find a binding for your current environment: Linux/musl 64-bit with Node.js 8.x 
web_1 | 
web_1 | Found bindings for the following environments: 
web_1 | - OS X 64-bit with Node.js 9.x 
web_1 | 
web_1 | This usually happens because your environment has changed since running `npm install`. 
web_1 | Run `npm rebuild node-sass --force` to build the binding for your current environment. 
web_1 |  at module.exports (/usr/src/app/node_modules/node-sass/lib/binding.js:15:13) 
web_1 |  at Object.<anonymous> (/usr/src/app/node_modules/node-sass/lib/index.js:14:35) 
web_1 |  at Module._compile (module.js:635:30) 
web_1 |  at Object.Module._extensions..js (module.js:646:10) 
web_1 |  at Module.load (module.js:554:32) 
web_1 |  at tryModuleLoad (module.js:497:12) 
web_1 |  at Function.Module._load (module.js:489:3) 
web_1 |  at Module.require (module.js:579:17) 
web_1 |  at require (internal/module.js:11:18) 
web_1 |  at Object.<anonymous> (/usr/src/app/node_modules/sass-loader/lib/loader.js:3:14) 
web_1 |  at Module._compile (module.js:635:30) 
web_1 |  at Object.Module._extensions..js (module.js:646:10) 
web_1 |  at Module.load (module.js:554:32) 
web_1 |  at tryModuleLoad (module.js:497:12) 
web_1 |  at Function.Module._load (module.js:489:3) 
web_1 |  at Module.require (module.js:579:17) 
web_1 | 
web_1 | @ ./node_modules/vue-style-loader?{"sourceMap":true}!./node_modules/css-loader?{"minimize":true,"importLoaders":1,"sourceMap":true,"alias":{"/static":"/usr/src/app/static","/assets":"/usr/src/app/assets"}}!./node_modules/vue-loader/lib/style-compiler?{"vue":true,"id":"data-v-314f53c6","scoped":false,"hasInlineConfig":true}!./node_modules/sass-loader/lib/loader.js?{"indentedSyntax":true}!./node_modules/vue-loader/lib/selector.js?type=styles&index=0&bustCache!./layouts/default.vue 4:14-499 13:3-17:5 14:22-507 
web_1 | @ ./layouts/default.vue 
web_1 | @ ./node_modules/babel-loader/lib?{"babelrc":false,"cacheDirectory":true,"presets":["/usr/src/app/node_modules/babel-preset-vue-app/dist/index.common.js"]}!./node_modules/vue-loader/lib/selector.js?type=script&index=0&bustCache!./.nuxt/App.vue 
web_1 | @ ./.nuxt/App.vue 
web_1 | @ ./.nuxt/index.js 
web_1 | @ ./.nuxt/client.js 
web_1 | @ multi webpack-hot-middleware/client?name=client&reload=true&timeout=3000&path=/__webpack_hmr ./.nuxt/client.js 
web_1 | 
web_1 | error in ./layouts/plain.vue 
web_1 | 
web_1 | Module build failed: Error: Missing binding /usr/src/app/node_modules/node-sass/vendor/linux_musl-x64-57/binding.node 
web_1 | Node Sass could not find a binding for your current environment: Linux/musl 64-bit with Node.js 8.x 
web_1 | 
web_1 | Found bindings for the following environments: 
web_1 | - OS X 64-bit with Node.js 9.x 
web_1 | 
web_1 | This usually happens because your environment has changed since running `npm install`. 
web_1 | Run `npm rebuild node-sass --force` to build the binding for your current environment. 
web_1 |  at module.exports (/usr/src/app/node_modules/node-sass/lib/binding.js:15:13) 
web_1 |  at Object.<anonymous> (/usr/src/app/node_modules/node-sass/lib/index.js:14:35) 
web_1 |  at Module._compile (module.js:635:30) 
web_1 |  at Object.Module._extensions..js (module.js:646:10) 
web_1 |  at Module.load (module.js:554:32) 
web_1 |  at tryModuleLoad (module.js:497:12) 
web_1 |  at Function.Module._load (module.js:489:3) 
web_1 |  at Module.require (module.js:579:17) 
web_1 |  at require (internal/module.js:11:18) 
web_1 |  at Object.<anonymous> (/usr/src/app/node_modules/sass-loader/lib/loader.js:3:14) 
web_1 |  at Module._compile (module.js:635:30) 
web_1 |  at Object.Module._extensions..js (module.js:646:10) 
web_1 |  at Module.load (module.js:554:32) 
web_1 |  at tryModuleLoad (module.js:497:12) 
web_1 |  at Function.Module._load (module.js:489:3) 
web_1 |  at Module.require (module.js:579:17) 
web_1 | 
web_1 | @ ./node_modules/vue-style-loader?{"sourceMap":true}!./node_modules/css-loader?{"minimize":true,"importLoaders":1,"sourceMap":true,"alias":{"/static":"/usr/src/app/static","/assets":"/usr/src/app/assets"}}!./node_modules/vue-loader/lib/style-compiler?{"vue":true,"id":"data-v-1215e3b4","scoped":false,"hasInlineConfig":true}!./node_modules/sass-loader/lib/loader.js?{"indentedSyntax":true}!./node_modules/vue-loader/lib/selector.js?type=styles&index=0&bustCache!./layouts/plain.vue 4:14-497 13:3-17:5 14:22-505 
web_1 | @ ./layouts/plain.vue 
web_1 | @ ./node_modules/babel-loader/lib?{"babelrc":false,"cacheDirectory":true,"presets":["/usr/src/app/node_modules/babel-preset-vue-app/dist/index.common.js"]}!./node_modules/vue-loader/lib/selector.js?type=script&index=0&bustCache!./.nuxt/App.vue 
web_1 | @ ./.nuxt/App.vue 
web_1 | @ ./.nuxt/index.js 
web_1 | @ ./.nuxt/client.js 
web_1 | @ multi webpack-hot-middleware/client?name=client&reload=true&timeout=3000&path=/__webpack_hmr ./.nuxt/client.js 
web_1 | 
web_1 | error in ./layouts/public.vue 
web_1 | 
web_1 | Module build failed: Error: Missing binding /usr/src/app/node_modules/node-sass/vendor/linux_musl-x64-57/binding.node 
web_1 | Node Sass could not find a binding for your current environment: Linux/musl 64-bit with Node.js 8.x 
web_1 | 
web_1 | Found bindings for the following environments: 
web_1 | - OS X 64-bit with Node.js 9.x 
web_1 | 
web_1 | This usually happens because your environment has changed since running `npm install`. 
web_1 | Run `npm rebuild node-sass --force` to build the binding for your current environment. 
web_1 |  at module.exports (/usr/src/app/node_modules/node-sass/lib/binding.js:15:13) 
web_1 |  at Object.<anonymous> (/usr/src/app/node_modules/node-sass/lib/index.js:14:35) 
web_1 |  at Module._compile (module.js:635:30) 
web_1 |  at Object.Module._extensions..js (module.js:646:10) 
web_1 |  at Module.load (module.js:554:32) 
web_1 |  at tryModuleLoad (module.js:497:12) 
web_1 |  at Function.Module._load (module.js:489:3) 
web_1 |  at Module.require (module.js:579:17) 
web_1 |  at require (internal/module.js:11:18) 
web_1 |  at Object.<anonymous> (/usr/src/app/node_modules/sass-loader/lib/loader.js:3:14) 
web_1 |  at Module._compile (module.js:635:30) 
web_1 |  at Object.Module._extensions..js (module.js:646:10) 
web_1 |  at Module.load (module.js:554:32) 
web_1 |  at tryModuleLoad (module.js:497:12) 
web_1 |  at Function.Module._load (module.js:489:3) 
web_1 |  at Module.require (module.js:579:17) 
web_1 | 
web_1 | @ ./node_modules/vue-style-loader?{"sourceMap":true}!./node_modules/css-loader?{"minimize":true,"importLoaders":1,"sourceMap":true,"alias":{"/static":"/usr/src/app/static","/assets":"/usr/src/app/assets"}}!./node_modules/vue-loader/lib/style-compiler?{"vue":true,"id":"data-v-1eea6a3d","scoped":false,"hasInlineConfig":true}!./node_modules/sass-loader/lib/loader.js?{"indentedSyntax":true}!./node_modules/vue-loader/lib/selector.js?type=styles&index=0&bustCache!./layouts/public.vue 4:14-498 13:3-17:5 14:22-506 
web_1 | @ ./layouts/public.vue 
web_1 | @ ./node_modules/babel-loader/lib?{"babelrc":false,"cacheDirectory":true,"presets":["/usr/src/app/node_modules/babel-preset-vue-app/dist/index.common.js"]}!./node_modules/vue-loader/lib/selector.js?type=script&index=0&bustCache!./.nuxt/App.vue 
web_1 | @ ./.nuxt/App.vue 
web_1 | @ ./.nuxt/index.js 
web_1 | @ ./.nuxt/client.js 
web_1 | @ multi webpack-hot-middleware/client?name=client&reload=true&timeout=3000&path=/__webpack_hmr ./.nuxt/client.js 

내가 잘못 일을 할 수있는 어떤 생각 :

version: '3' 
services: 
    web: 
    build: . 
    ports: 
    - "3000:3000" 
    volumes: 
    - .:/usr/src/app 

docker-compose up 다음과 같은 오류의 결과를 실행?

미리 감사드립니다.

편집 :

나는 어쩌면 모듈이 어떻게 든 (따라서 메시지 OS X 64-bit with Node.js 9.x)에 영향을 미칠 수 있습니다 생각 때문에 나는 지역 개발을위한 맥 OS를 사용하고 있습니다.

node_modules 
npm-debug.log 

답변

0

나는이 문제를 해결할 수 있었다 : 그러나, 나는 내 .dockerignore 그래서 이것은 안 경우에는 다음있다. 문제는 다른 스레드가 언급 한, 다음 명령은 컨테이너 내에서 실행해야한다는 것입니다 :

npm rebuild node-sass 

이 내 로컬 dev에 환경 (맥 OS)와 부두 노동자 용기 (리눅스)의 차이 때문이다.

docker exec -it <image_name> /bin/sh 
: bash는 고산에서 기본적으로 제공하지 않기 때문에

,이는 사용하여 용기에 놓는 방법으로 수행 할 수 있습니다