質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

ただいまの
回答率

87.59%

Laradockでnginxのエラー

解決済

回答 4

投稿 編集

  • 評価
  • クリップ 0
  • VIEW 2,892

score 11

LaradockでLarabelを利用してみたいのですが、
nginxの部分でエラーが出てうまくいきません。

手順は以下のページを参照にしてました。
https://qiita.com/TokyoTools/items/78fd3d1b31a62d568d32

エラーとなったのは、

docker-compose up -d nginx mysql redis beanstalkd


を実行した後で最後に、下記のエラーが出てどうやらインストールがうまくいっていないようです。

ERROR: Service 'nginx' failed to build: The command '/bin/sh -c apk update     && apk upgrade     && apk --update add logrotate     && apk add --no-cache openssl     && apk add --no-cache bash     && adduser -D -H -u 1000 -s /bin/bash www-data' returned a non-zero code: 1

原因として何が考えられるでしょうか? 以上よろしくお願いいたします。

環境 mac
イメージ説明

nginxのDockerfileです。(ダウンロードしただけの未編集状態)※本質問の次の日にダウンロードした。

FROM nginx:alpine

LABEL maintainer="Mahmoud Zalt <mahmoud@zalt.me>"

COPY nginx.conf /etc/nginx/

# If you're in China, or you need to change sources, will be set CHANGE_SOURCE to true in .env.

ARG CHANGE_SOURCE=false
RUN if [ ${CHANGE_SOURCE} = true ]; then \
    # Change application source from dl-cdn.alpinelinux.org to aliyun source
    sed -i 's/dl-cdn.alpinelinux.org/mirrors.aliyun.com/' /etc/apk/repositories \
;fi

RUN apk update \
    && apk upgrade \
    && apk --update add logrotate \
    && apk add --no-cache openssl \
    && apk add --no-cache bash

RUN set -x ; \
    addgroup -g 82 -S www-data ; \
    adduser -u 82 -D -S -G www-data www-data && exit 0 ; exit 1

ARG PHP_UPSTREAM_CONTAINER=php-fpm
ARG PHP_UPSTREAM_PORT=9000

# Create 'messages' file used from 'logrotate'
RUN touch /var/log/messages

# Copy 'logrotate' config file
COPY logrotate/nginx /etc/logrotate.d/

# Set upstream conf and remove the default conf
RUN echo "upstream php-upstream { server ${PHP_UPSTREAM_CONTAINER}:${PHP_UPSTREAM_PORT}; }" > /etc/nginx/conf.d/upstream.conf \
    && rm /etc/nginx/conf.d/default.conf

ADD ./startup.sh /opt/startup.sh
RUN sed -i 's/\r//g' /opt/startup.sh
CMD ["/bin/bash", "/opt/startup.sh"]

EXPOSE 80 443

↓本質問のエラーが表示された時にgit cloneしていたnginxのDockerfileです(未編集)。

FROM nginx:alpine

LABEL maintainer="Mahmoud Zalt <mahmoud@zalt.me>"

COPY nginx.conf /etc/nginx/

# If you're in China, or you need to change sources, will be set CHANGE_SOURCE to true in .env.

ARG CHANGE_SOURCE=false
RUN if [ ${CHANGE_SOURCE} = true ]; then \
    # Change application source from dl-cdn.alpinelinux.org to aliyun source
    sed -i 's/dl-cdn.alpinelinux.org/mirrors.aliyun.com/' /etc/apk/repositories \
;fi

RUN apk update \
    && apk upgrade \
    && apk --update add logrotate \
    && apk add --no-cache openssl \
    && apk add --no-cache bash \
    && adduser -D -H -u 1000 -s /bin/bash www-data

ARG PHP_UPSTREAM_CONTAINER=php-fpm
ARG PHP_UPSTREAM_PORT=9000

# Create 'messages' file used from 'logrotate'
RUN touch /var/log/messages

# Copy 'logrotate' config file
COPY logrotate/nginx /etc/logrotate.d/

# Set upstream conf and remove the default conf
RUN echo "upstream php-upstream { server ${PHP_UPSTREAM_CONTAINER}:${PHP_UPSTREAM_PORT}; }" > /etc/nginx/conf.d/upstream.conf \
    && rm /etc/nginx/conf.d/default.conf

ADD ./startup.sh /opt/startup.sh
RUN sed -i 's/\r//g' /opt/startup.sh
CMD ["/bin/bash", "/opt/startup.sh"]

EXPOSE 80 443
  • 気になる質問をクリップする

    クリップした質問は、後からいつでもマイページで確認できます。

    またクリップした質問に回答があった際、通知やメールを受け取ることができます。

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 過去に投稿した質問と同じ内容の質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

質問への追記・修正、ベストアンサー選択の依頼

  • barbar

    2019/06/07 15:40

    引き続きコメントありがとうございます。
    質問欄にnginxのDockerfileコードを追記しました。

    git cloneしただけの未編集状態です。

    キャンセル

  • xenbeat

    2019/06/07 16:16

    > git cloneしただけの未編集状態です。

    ご質問のエラーが発生してから最新を取得しましたか?
    (今手元にあるのは問題発生時点のコードではない?)

    エラーの中にある「adduser -D -H -u 1000 -s /bin/bash www-data'」が見当たらないので。

    キャンセル

  • barbar

    2019/06/07 16:48

    >今手元にあるのは問題発生時点のコードではない?
    はい、あらためて本日取得したコードでした。昨日取得(エラー発生時)したコードを追記しました。

    昨日取得したのと、
    本日取得したのが既にコードが変わっていたようです。。。

    キャンセル

回答 4

checkベストアンサー

+1

今手元にあるのは問題発生時点のコードではない?

はい、あらためて本日取得したコードでした。昨日取得(エラー発生時)したコードを追記しました。

最新を取得して(昨日取得したコードでなく本日取得したコードにして)
docker-compose build --no-cache nginxを実行してみてください。

未検証ですが、次のPRで解決されているものと思います。
https://github.com/laradock/laradock/pull/2162

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2019/06/07 17:08

    出来ました!
    今日は作業していなかったのですが、先程改めてgit cloneしたコードで試したら普通にいけました!

    こんなこともあるのですね。いい経験になりました。ありがとうございます。

    キャンセル

  • 2019/06/07 17:23

    > こんなこともあるのですね。

    ベースイメージに「nginx:alpine」と指定しているので、ベース側に何か変更があれば今まで動いていたものが突然動かなくなるというのは当然あり得る話です。

    ともあれ解決出来てよかったです!

    キャンセル

0

Laradockはバージョンアップでかなり構造が変わるので、公式ドキュメントを参照してください。
Laradock
難しい場合は、Laravel Homesteadの利用を検討してください。

投稿

編集

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2019/06/06 14:01

    ご回答ありがとうございます。

    VirtualBoxにインストールしたUbuntuでも、まったく同じエラーが出ました。

    バージョンで頻繁に仕様が変わるようだと、Dockerを利用している恩恵もあまりないような気がします。

    公式ドキュメント読み込んでみたいと思います。

    キャンセル

  • 2019/06/06 17:35

    LaradockはLaravelに必要なDocker構築の参考とどめて、自分用にカスタマイズした方がいいかもしれません。

    キャンセル

0

同じようなエラーで解決しているURLがあったので貼っときます。
Laladock

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2019/06/06 14:15

    ご回答ありがとうございます。

    貼って頂いたページも試してみたのですが、うまくいきませんでした。
    2年前の記事なので微妙かなと思ったのですが、関係性はありそうなのでもう少し調べてみます。

    キャンセル

  • 2019/06/27 22:18

    こちらですが解決していない方法なので評価を下げました

    キャンセル

0

docker-composeのインストールはできていますか?

curl -L https://github.com/docker/compose/releases/download/1.25.0-rc1/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose
chmod +x /usr/local/bin/docker-compose

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2019/06/06 21:32

    コメントありがとうございます。

    はい、Docker Desktopの場合はセットでインストール済みで、
    docker-composeはUbuntuでもインストールできています。

    キャンセル

15分調べてもわからないことは、teratailで質問しよう!

  • ただいまの回答率 87.59%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる

関連した質問

同じタグがついた質問を見る