服务“应用”无法构建:未授权:在对laravel应用进行泊坞时需要身份验证

时间:2019-02-20 13:36:58

标签: laravel docker nginx docker-compose dockerfile

我一直在尝试对laravel应用进行docker化,但是每次运行docker-compose build时,我都会不断遇到Service 'app' failed to build: unauthorized: authentication required错误。
以下是我使用的docker文件:

docker-compose.yaml文件:

version: '2'
services:

  # The Application
  app:
    build:
      context: ./
      dockerfile: app.dockerfile
    working_dir: /var/www
    volumes:
      - ./:/var/www
    environment:
      - "DB_PORT=3306"
      - "DB_HOST=database"

  # The Web Server
  web:
    build:
      context: ./
      dockerfile: web.dockerfile
    working_dir: /var/www
    volumes_from:
      - app
    ports:
      - 8080:80

  # The Database
  database:
    image: mysql:5.6
    volumes:
      - dbdata:/var/lib/mysql
    environment:
      - "MYSQL_ROOT_PASSWORD="
      - "MYSQL_DATABASE=database"
      - "MYSQL_USER=root"
    ports:
      - "33061:3306"

volumes:
  dbdata:

我的app.dockerfile:

FROM php:7.0.4-fpm

RUN apt-get update && apt-get install -y libmcrypt-dev \
  mysql-client libmagickwand-dev --no-install-recommends \
  && pecl install imagick \
  && docker-php-ext-enable imagick \
  && docker-php-ext-install mcrypt pdo_mysql

web.docker文件:

FROM nginx:1.10

ADD vhost.conf /etc/nginx/conf.d/default.conf

vhost.conf文件:

server {
    listen 80;
    index index.php index.html;
    root /var/www/public;

    location / {
        try_files $uri /index.php?$args;
    }

    location ~ \.php$ {
        fastcgi_split_path_info ^(.+\.php)(/.+)$;
        fastcgi_pass app:9000;
        fastcgi_index index.php;
        include fastcgi_params;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        fastcgi_param PATH_INFO $fastcgi_path_info;
    }
}

以上文件位于laravel应用程序的根目录中,并且我使用Windows 10 Pro。 解决我的问题的任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:0)

我注意到您正在将本地应用程序目录映射到您的容器中。在适用于Windows 10的Docker上,您必须执行以下操作以使本地驱动器可用于您的容器:

  1. 右键单击Docker托盘图标
  2. 选择“设置”
  3. 选择“共享驱动器”
  4. 选中您的应用程序代码所在的驱动器旁边的框。
  5. 在询问时输入您的登录凭据。

注意:如果您更改登录密码,则需要返回到此设置位置和“重置凭据”