docker - Docker-compose“没有这样的服务”
问题描述
我docker-compose up -d
使用这个 docker-compose.yml 文件启动时出错:没有这样的服务:php-c
它曾经工作,我没有改变任何东西。与此同时,我也没有任何 docker 更新。
如果我删除container_name
密钥,那么我会显示与自动生成的名称相同的错误。
我正在使用 wsl2 和 docker 20.10.8。
version: '3'
services:
db:
image: mysql:5.7
container_name: db-c
ports:
- 3307:3306
volumes:
- "./.data/db:/var/lib/mysql"
environment:
MYSQL_ROOT_PASSWORD: ${MYSQL_ROOT_PASSWORD}
MYSQL_DATABASE: ${MYSQL_DATABASE}
MYSQL_USER: ${MYSQL_USER}
MYSQL_PASSWORD: ${MYSQL_PASSWORD}
php:
build:
context: php7-fpm
args:
TIMEZONE: ${TIMEZONE}
username: ${username}
container_name: php-c
volumes:
- ${SYMFONY_APP_PATH}:/var/www/symfony
- ./logs/symfony/:/var/www/symfony/var/logs
environment:
- XDEBUG_REMOTE_HOST=host.docker.internal
- PHP_IDE_CONFIG=serverName=symfony.local
user: 1000:1000
nginx:
build: nginx
container_name: nginx-c
ports:
- 80:80
volumes_from:
- php
volumes:
- ./logs/nginx/:/var/log/nginx
这是 Dockerfile。
# See https://github.com/docker-library/php/blob/master/7.1/fpm/Dockerfile
FROM php:7.3-fpm
ARG TIMEZONE
ARG username=bastien
MAINTAINER Maxence POUTORD <maxence.poutord@gmail.com>
RUN apt-get update && apt-get install -y \
openssl \
git \
unzip \
libicu-dev \
sudo \
lsof \
zlib1g-dev \
libzip-dev \
iputils-ping
# Install GD
RUN apt-get update && apt-get install -y \
libfreetype6-dev \
libjpeg62-turbo-dev \
libpng-dev \
&& docker-php-ext-configure gd --with-freetype-dir=/usr/include/ --with-jpeg-dir=/usr/include/ \
&& docker-php-ext-install -j$(nproc) gd
# Install Composer
RUN curl -sS https://getcomposer.org/installer | php -- --install-dir=/usr/local/bin --filename=composer
RUN composer --version
# Set timezone
RUN ln -snf /usr/share/zoneinfo/${TIMEZONE} /etc/localtime && echo ${TIMEZONE} > /etc/timezone
RUN printf '[PHP]\ndate.timezone = "%s"\n', ${TIMEZONE} > /usr/local/etc/php/conf.d/tzone.ini
RUN "date"
# Type docker-php-ext-install to see available extensions
RUN docker-php-ext-install pdo pdo_mysql zip
# install xdebug
RUN pecl install xdebug
RUN docker-php-ext-enable xdebug
RUN cd /usr/local/etc/php/conf.d/ && \
echo 'memory_limit = 1G' >> /usr/local/etc/php/conf.d/docker-php-memlimit.ini
COPY xdebug.ini /usr/local/etc/php/conf.d/docker-php-ext-xdebug.ini
#RUN echo "error_reporting = E_ALL" >> /usr/local/etc/php/conf.d/docker-php-ext-xdebug.ini \
# & echo "display_startup_errors = On" >> /usr/local/etc/php/conf.d/docker-php-ext-xdebug.ini \
# & echo "display_errors = On" >> /usr/local/etc/php/conf.d/docker-php-ext-xdebug.ini \
# & echo "xdebug.remote_enable=1" >> /usr/local/etc/php/conf.d/docker-php-ext-xdebug.ini \
# & echo "xdebug.remote_connect_back=1" >> /usr/local/etc/php/conf.d/docker-php-ext-xdebug.ini \
# & echo "xdebug.idekey=\"PHPSTORM\"" >> /usr/local/etc/php/conf.d/docker-php-ext-xdebug.ini \
# & echo "xdebug.remote_port=9001" >> /usr/local/etc/php/conf.d/docker-php-ext-xdebug.ini
# CREATE USER FOR $username
RUN useradd --create-home --shell /bin/bash -u 1000 $username
USER $username
RUN mkdir /home/$username/.ssh \
&& chmod 700 /home/$username/.ssh
COPY .bashrc /home/$username/.bashrc
COPY config /home/$username/.ssh/config
WORKDIR /var/www/symfony
[编辑]
当我使用重启时,这有效......我真的不明白发生了什么。
docker-compose restart
解决方案
我有同样的问题。
看来volumes_from
配置是问题的根源。(可能是一个 docker-compose 错误)
替换volumes_from
为volumes
我做了诀窍。
尝试将以下内容用于您的 nginx 服务配置:
nginx:
build: nginx
container_name: nginx-c
ports:
- 80:80
volumes:
- ${SYMFONY_APP_PATH}:/var/www/symfony
- ./logs/symfony/:/var/www/symfony/var/logs
- ./logs/nginx/:/var/log/nginx
推荐阅读
- excel - 绝对单元格引用中断
- keras - 添加 Keras 层以按给定轴展平输入
- r - 为什么包含参数的“if”语句在 ggplot geoms 中不起作用?
- javascript - 我正在尝试使用 Cloud Functions 触发器更新 Firestore 数据库中的地图值
- mysql - Vapor 3 - 部署到 GCP App Engine 时 Fluent MySQL 上的错误响应 9
- javascript - 带有选项的输入提示 yeoman
- sql - 一行上的一个“组”2个ID如何过滤另一张表上的数据?
- angular - Angular,在映射数组中包含可观察数据
- arduino - Arduino,HC SR-04 距离传感器输出错误
- python-3.x - 如何将逗号分隔的数据读入没有列标题的数据框中?