2016-09-29 9 views
1

ドッカー環境を構築しようとしています。私は私のイメージを構築するDockerfileを作った。 私のpackage.jsonファイルがコンテナの中に残らないという問題以外はすべて正常に動作しているようです。あたかもどこかで取り除かれているようです。私が間違っていることは何ですか?ここに私のドッカーファイルの内容は次のとおりです。package.jsonファイルがドッカーコンテナに残らない

FROM ubuntu:14.04 

RUN groupadd -r webuser && useradd -r -g webuser webuser && mkdir /home/webuser/ && chown webuser:webuser /home/webuser/ 

# install curl, apache, php 
RUN sudo DEBIAN_FRONTEND=noninteractive \ 
    apt-get -y update && \ 
    apt-get -y install software-properties-common python-software-properties && \ 
    add-apt-repository ppa:ondrej/php && \ 
    apt-get -y update && \ 
    apt-get install -y --force-yes \ 
    curl \ 
    git-core \ 
    apache2 \ 
    php5.6 php5.6-mcrypt php5.6-mbstring php5.6-curl php5.6-cli php5.6-mysql php5.6-gd php5.6-intl php5.6-xsl \ 
    php5.6-bz2 php5.6-zip && \ 
    php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');" && \ 
    php composer-setup.php && \ 
    php -r "unlink('composer-setup.php');" && \ 
    mv composer.phar /usr/local/bin/composer && \ 
    chmod +x /usr/local/bin/composer 

# install PHPUnit 
RUN curl -L https://phar.phpunit.de/phpunit.phar -o phpunit.phar && \ 
    chmod +x phpunit.phar && \ 
    mv phpunit.phar /usr/local/bin/phpunit && \ 
    chmod +x /usr/local/bin/phpunit 

ADD package.json /var/www/html/package.json 

WORKDIR /var/www/html 

RUN chown -R webuser:webuser /var/www/html 

USER webuser 

# install node js 6 
RUN NVM_DIR="/home/webuser/.nvm" && \ 
    curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.32.0/install.sh | bash && \ 
    [ -s "$NVM_DIR/nvm.sh" ] && . "$NVM_DIR/nvm.sh" && \ 
    nvm install 6 && \ 
    npm install -g webpack && \ 
    npm install 

RUN echo 'export NVM_DIR="/home/webuser/.nvm"\n\ 
[ -s "$NVM_DIR/nvm.sh" ] && . "$NVM_DIR/nvm.sh"'\ 
>> /home/webuser/.bashrc 

COPY src /var/www/html/ 

USER root 

EXPOSE 80 

CMD ["/usr/sbin/apache2ctl", "-D", "FOREGROUND"] 

答えて

0

ソースディレクトリ内にpackage.jsonというファイルが必要なようです。 package.jsonを別々にコピーし、npm installパターンを実行することは、ドッカーのキャッシングシステムを使用するために使用されます。

0

を次のようにあなたのADDコマンドを変更してみてください:

RUN mkdir -p /var/www/html 
ADD package.json /var/www/html 

またpackage.jsonは私が持っている

+0

いいえ、役に立たなかった – mahadazad

0
FROM ubuntu:14.04 

    ADD package.json /var/www/html/package.json 

    RUN groupadd -r webuser && useradd -r -g webuser webuser && mkdir /home/webuser/ && chown webuser:webuser /home/webuser/ 

    # install curl, apache, php 
    RUN sudo DEBIAN_FRONTEND=noninteractive \ 
     apt-get -y update && \ 
     apt-get -y install software-properties-common python-software-properties && \ 
     add-apt-repository ppa:ondrej/php && \ 
     apt-get -y update && \ 
     apt-get install -y --force-yes \ 
     curl \ 
     git-core \ 
     apache2 \ 
     php5.6 php5.6-mcrypt php5.6-mbstring php5.6-curl php5.6-cli php5.6-mysql php5.6-gd php5.6-intl php5.6-xsl \ 
     php5.6-bz2 php5.6-zip && \ 
     php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');" && \ 
     php composer-setup.php && \ 
     php -r "unlink('composer-setup.php');" && \ 
     mv composer.phar /usr/local/bin/composer && \ 
     chmod +x /usr/local/bin/composer 

    # install PHPUnit 
    RUN curl -L https://phar.phpunit.de/phpunit.phar -o phpunit.phar && \ 
     chmod +x phpunit.phar && \ 
     mv phpunit.phar /usr/local/bin/phpunit && \ 
     chmod +x /usr/local/bin/phpunit 



    WORKDIR /var/www/html 

    RUN chown -R webuser:webuser /var/www/html 

    USER webuser 

    # install node js 6 
    RUN NVM_DIR="/home/webuser/.nvm" && \ 
     curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.32.0/install.sh | bash && \ 
     [ -s "$NVM_DIR/nvm.sh" ] && . "$NVM_DIR/nvm.sh" && \ 
     nvm install 6 && \ 
     npm install -g webpack && \ 
     npm install 

    RUN echo 'export NVM_DIR="/home/webuser/.nvm"\n\ 
    [ -s "$NVM_DIR/nvm.sh" ] && . "$NVM_DIR/nvm.sh"'\ 
    >> /home/webuser/.bashrc 

    COPY src /var/www/html/ 

    USER root 

    EXPOSE 80 

    CMD ["/usr/sbin/apache2ctl", "-D", "FOREGROUND"] 

に存在していることを確認してくださいあなたのDockerfileを実行し、同じ問題を抱えていました。 ADDがDockerfileの先頭にある場合に機能します。しかし、いくつかの他の問題があります。ビルドプロセスは、右

chmod +x /usr/local/bin/composer 

た後、それは文句を言わないようにPHPUnitのとnodeJS、wwwディレクトリの設定所有者を設置し、停止しています。

多分、RUN全体を1つにする必要があります。

+0

いいえ、それは私のためには機能しません – mahadazad

+0

@mahadazadあなたはDockerfileと同じフォルダにファイルがありますか? – Gabbax0r

+0

はい、ファイルはDockerfileと同じ場所に存在します。 – mahadazad

関連する問題