0

다음 해당 파일 Gemfile 오류가 프로젝트의 루트 디렉토리에있는 고정 표시기 파일입니다 -점점 들러로드 오류가 자주

다음
FROM ruby:2.2 
MAINTAINER technologies.com 

RUN apt-get update -qq && apt-get install -y build-essential 

RUN apt-get install -y libxml2-dev libxslt1-dev 

RUN apt-get install -y libqt4-webkit libqt4-dev xvfb 

RUN apt-get install -y nodejs 

ENV INSTALL_PATH /as_app 

RUN mkdir -p $INSTALL_PATH 

WORKDIR $INSTALL_PATH 

COPY Gemfile Gemfile 

RUN bundle install 

COPY . . 

EXPOSE 3000 

CMD ["bundle", "exec", "rails", "server", "-b", "0.0.0.0"] 

프로젝트의 루트 디렉토리에 고정 표시기-compose.yml 파일의 내용입니다 : -

as_web: 
    build: . 
    environment: 
    - RAILS_ENV=development 
    - QUEUE=* 
    - REDIS_URL=redis://redis:6379 
    volumes: 
    - .:/as_app 
    ports: 
    - 3000:3000 
    links: 
    - as_mongo 
    - as_redis 
    command: rails server -b 0.0.0.0 
as_mongo: 
    image: mongo:latest 
    ports: 
    - "27017:27017" 
as_redis: 
    image: redis 
    ports: 
    - "6379:6379" 
as_worker: 
    build: . 
    environment: 
    - QUEUE=* 
    - RAILS_ENV=development 
    - REDIS_URL=redis://redis:6379 
    volumes: 
    - .:/as_app 
    links: 
    - as_mongo 
    - as_redis 
    command: bundle exec rake environment resque:work 

고정 표시기 버전 1.11.2, 고정 표시기 기계 버전 0.8.0-RC1, 고정 표시기-작성 버전 1.8.0-RC1 루비 2.2.5, 4.2.4 레일.

내 문제는 다음과 같음 : -

1) 나는 이미지가 설치되어 보석으로 성공적으로 빌드 프로젝트 루트 디렉토리에서 "고정 표시기-작성 빌드"로 이미지를 빌드 할 때.
2) 그러나 "도커 작성"을 수행하면 as_web 및 as_worker 서비스가 코드 1과 10로 종료됩니다. gemfile이나 .bundler가 발견되지 않았으므로 오류가 발생합니다. 내가 bash를 통해 이미지에 로그인하고 작업 디렉토리를 볼 때 프로젝트 파일이 보이지 않습니다.

내가 알고 싶은 3) 지식은 다음과 같습니다 - I 단자를 시작할 때

내가) 내가 수동으로 "고정 표시기 기계 시작 기본"
II) 그럼 난 (명령 "평가 후면 $ 실행처럼 버추얼 인스턴스를 시작 docker-machine env dev) "을 사용하여 현재 쉘을 virtualbox docker-daemon으로 지정합니다. 이렇게하면"docker build -t as_web. " 터미널은 "현재 빌드 컨텍스트를 docker 데몬으로 보냅니다"와 같은 메시지를 제공합니다.

a) VirtualBox에서 빌드가 완료되었다는 메시지가 표시됩니까? 나는 "고정 표시기-작성 빌드를"할 경우 ".... 보내기"와 같은 그런 메시지가 나타납니다

,

B)는 고정 표시기-구성도 가상 상자에서 데몬을 고정 표시기를 가리 않거나 로컬 호스트에 구축되는 것 (myubuntuOS), 조금 혼란 스럽습니까?

추가 정보가 필요한 경우 자세한 내용을 숙지하시기 바랍니다. 그때 알려 줘서 고마워. 해피 코딩.

답변

0

docker-compose builddocker build 모두 동일한 일을합니다. 그들은 둘 다 docker 엔진 API를 사용하여 가상 박스에 이미지를 만듭니다. 출력 메시지는 약간 다릅니다.

귀하의 문제는 이것이다 : 당신은 호스트에서 프로젝트 디렉토리와 응용 프로그램 디렉토리를 무시하고

volumes: 
- .:/as_app 

. 호스트에서 번들 설치를 실행하지 않은 경우 파일은 시작할 때 컨테이너에 저장되지 않습니다.

docker-compose run as_app bundle install

을 실행하여 문제를 해결할 수 있습니다.