为什么 VSCode Dev Container 扩展无法构建此容器?

问题描述 投票:0回答:1

我一直在这个项目中顺利工作,直到今天早上一切都工作正常。 我的同事正在运行相同的开发容器,并且它适用于他们。我们似乎找不到导致它无法构建的原因。 VSCode Dev Container 扩展无法执行

docker-compose -f /home/oscar/reditec/sii-ci4/docker-compose-dev.yml config

我已经

  • 重新启动 VSCode
  • 重新安装开发容器 vscode 扩展
  • 降级扩展
  • 重新安装docker
  • 重新启动我的电脑

输出日志如下:

[5271 ms] Dev Containers 0.299.0 in VS Code 1.82.2 (abd2f3db4bdb28f9e95536dfa84d8479f1eb312d).
[5270 ms] Start: Run: docker version --format {{.Server.APIVersion}}
[5297 ms] 1.41
[5326 ms] Start: Run: /snap/code/140/usr/share/code/code --ms-enable-electron-run-as-node /home/oscar/.vscode/extensions/ms-vscode-remote.remote-containers-0.299.0/dist/spec-node/devContainersSpecCLI.js read-configuration --workspace-folder /home/oscar/reditec/sii-ci4 --log-level debug --log-format json --config /home/oscar/reditec/sii-ci4/.devcontainer/devcontainer.json --include-merged-configuration --mount-workspace-git-root true
[5573 ms] @devcontainers/cli 0.46.0. Node.js v18.15.0. linux 6.2.0-32-generic x64.
[5573 ms] Start: Run: docker ps -q -a --filter label=devcontainer.local_folder=/home/oscar/reditec/sii-ci4 --filter label=devcontainer.config_file=/home/oscar/reditec/sii-ci4/.devcontainer/devcontainer.json
[5593 ms] Start: Run: docker ps -q -a --filter label=devcontainer.local_folder=/home/oscar/reditec/sii-ci4
[5613 ms] Start: Run: docker-compose version --short
[5702 ms] Docker Compose version: 
[5702 ms] Start: Run: docker-compose -f /home/oscar/reditec/sii-ci4/docker-compose-dev.yml config
[5796 ms] 
[5796 ms] 
[5796 ms] Exit code 1
[5798 ms] Error: Command failed: docker-compose -f /home/oscar/reditec/sii-ci4/docker-compose-dev.yml config
    at Dl (/home/oscar/.vscode/extensions/ms-vscode-remote.remote-containers-0.299.0/dist/spec-node/devContainersSpecCLI.js:2005:889)
    at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
    at async WN (/home/oscar/.vscode/extensions/ms-vscode-remote.remote-containers-0.299.0/dist/spec-node/devContainersSpecCLI.js:1935:23421)
    at async $ne (/home/oscar/.vscode/extensions/ms-vscode-remote.remote-containers-0.299.0/dist/spec-node/devContainersSpecCLI.js:2156:36212)
[5804 ms] Exit code 1
[1329962 ms] Start: Run: docker version --format {{.Server.APIVersion}}
[1329993 ms] 1.41
[1330032 ms] Start: Run: /snap/code/140/usr/share/code/code --ms-enable-electron-run-as-node /home/oscar/.vscode/extensions/ms-vscode-remote.remote-containers-0.299.0/dist/spec-node/devContainersSpecCLI.js read-configuration --workspace-folder /home/oscar/reditec/sii-ci4 --log-level debug --log-format json --config /home/oscar/reditec/sii-ci4/.devcontainer/devcontainer.json --include-merged-configuration --mount-workspace-git-root true --terminal-columns 105 --terminal-rows 7
[1330292 ms] @devcontainers/cli 0.46.0. Node.js v18.15.0. linux 6.2.0-32-generic x64.
[1330292 ms] Start: Run: docker ps -q -a --filter label=devcontainer.local_folder=/home/oscar/reditec/sii-ci4 --filter label=devcontainer.config_file=/home/oscar/reditec/sii-ci4/.devcontainer/devcontainer.json
[1330314 ms] Start: Run: docker ps -q -a --filter label=devcontainer.local_folder=/home/oscar/reditec/sii-ci4
[1330335 ms] Start: Run: docker-compose version --short
[1330414 ms] Docker Compose version: 
[1330414 ms] Start: Run: docker-compose -f /home/oscar/reditec/sii-ci4/docker-compose-dev.yml config
[1330495 ms] 
[1330495 ms] 
[1330495 ms] Exit code 1
[1330497 ms] Error: Command failed: docker-compose -f /home/oscar/reditec/sii-ci4/docker-compose-dev.yml config
    at Dl (/home/oscar/.vscode/extensions/ms-vscode-remote.remote-containers-0.299.0/dist/spec-node/devContainersSpecCLI.js:2005:889)
    at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
    at async WN (/home/oscar/.vscode/extensions/ms-vscode-remote.remote-containers-0.299.0/dist/spec-node/devContainersSpecCLI.js:1935:23421)
    at async $ne (/home/oscar/.vscode/extensions/ms-vscode-remote.remote-containers-0.299.0/dist/spec-node/devContainersSpecCLI.js:2156:36212)
[1330503 ms] Exit code 1

这就是 docker-compose-dev.yml 里面的内容

version: '3.9'

services:

  correcaminos_dev:
    build: 
      context: .
      dockerfile: dockerfile.dev
    container_name: sii_dev
    ports:
      - "443:443"
    links:
      - db_mysql_correcaminos_dev
      - db_mongo_correcaminos_dev
    volumes:
      - .:/var/www/html/
      - ./config/php-dev/php:/usr/local/etc/php
    user: root

  db_mysql_correcaminos_dev:
    build:
      context: .
      dockerfile: dockerfile.mysql
    container_name: mysqldb_dev
    ports:
      - "3309:3306"
    environment:
      - MYSQL_ROOT_PASSWORD=19630306
      - MYSQL_DATABASE=sii_test
      - MYSQL_SSL_MODE=REQUIRED
    volumes:
      - data-db-test-mysql-correcaminos:/var/lib/mysql

  phpmyadmin_dev:
    build: 
      context: .
      dockerfile: dockerfile.phpmyadmin
    container_name: phpmyadmin_dev
    ports:
      - "8443:443"
    links:
      - db_mysql_correcaminos_dev
    environment:
      - PMA_HOST=db_mysql_correcaminos_dev

  db_mongo_correcaminos_dev:
    image: mongo:7.0.1
    container_name: mongodb_dev
    ports:
      - "27017:27017"
    environment:
      - MONGO_INITDB_ROOT_USERNAME=root
      - MONGO_INITDB_ROOT_PASSWORD=19630306
      - MONGO_INITDB_DATABASE=sii_test
    volumes:
      - data-db-test-mongo-correcaminos:/data/db

  mongo_express_dev: # Cliente web mongo
    image: mongo-express:1.0.0-alpha.4
    container_name: mongo_express_dev
    environment:
      - ME_CONFIG_MONGODB_SERVER=db_mongo_correcaminos_dev
      - ME_CONFIG_MONGODB_ADMINUSERNAME=root
      - ME_CONFIG_MONGODB_ADMINPASSWORD=19630306
      - ME_CONFIG_MONGODB_PORT=27017
      - ME_CONFIG_BASICAUTH_USERNAME=root
      - ME_CONFIG_BASICAUTH_PASSWORD=19630306
    links:
      - db_mongo_correcaminos_dev
    ports:
      - "8081:8081"

  smtpserver_dev:
    image: mailhog/mailhog:v1.0.1
    restart: always
    container_name: mailhog
    ports:
      - "1025:1025"  # Puerto para SMTP
      - "8025:8025"  # Puerto para interfaz web

volumes:
  data-db-test-mysql-correcaminos:
  data-db-test-mongo-correcaminos:

这就是 dockerfile.dev 里面的内容

FROM php:8.2.6-apache

# Actualizamos la lista de paquetes disponibles
RUN apt-get update

# Nos aseguramos de que el paquete esté disponible
RUN apt-get install --reinstall -y locales

# descomentamos la locale que vamos a utilizar
RUN sed -i 's/# es_MX.UTF-8 UTF-8/es_MX.UTF-8 UTF-8/' /etc/locale.gen

# Generamos la locale elegida
RUN locale-gen es_MX.UTF-8

# seteamos las environment variables
ENV LANG es_MX.UTF-8
ENV LANGUAGE es_MX
ENV LC_ALL es_MX.UTF-8

# Verificamos la configuración actualizada
RUN dpkg-reconfigure --frontend noninteractive locales


# Instalamos la biblioteca libzip
RUN apt-get update && apt-get install -y --no-install-recommends \
        libzip-dev \
        && rm -rf /var/lib/apt/lists/*


# Intalamos las librearías de php que necesitaremos
RUN apt-get update && apt-get install -y \
    zip \
    unzip \
    p7zip-full \
    && rm -rf /var/lib/apt/lists/*
RUN docker-php-ext-install zip

RUN apt-get update && apt-get install -y libonig-dev && docker-php-ext-install mbstring

RUN apt-get update \
    && apt-get install -y libfreetype6-dev libjpeg-dev libpng-dev \
    && docker-php-ext-configure gd --with-freetype --with-jpeg \
    && docker-php-ext-install -j$(nproc) gd

RUN apt install -y libicu-dev \
    && docker-php-ext-install -j$(nproc) intl

RUN apt install -y libxml2-dev \
    && docker-php-ext-install xml

RUN apt install -y libcurl3-dev \
    && docker-php-ext-install curl

RUN docker-php-ext-install mysqli
RUN docker-php-ext-install pdo 
RUN docker-php-ext-install pdo_mysql 
RUN docker-php-ext-install iconv

# Instalamos y configuramos una herramienta para enviar correos
# Instalar msmtp
RUN apt-get update && apt-get install -y msmtp
# Configurar msmtp
RUN { \
    echo "defaults"; \
    echo "auth           on"; \
    echo "tls            on"; \
    echo "tls_trust_file /etc/ssl/certs/ca-certificates.crt"; \
    echo "logfile        ~/.msmtp.log"; \
    echo "account        gmail"; \
    echo "host           smtp.gmail.com"; \
    echo "port           587"; \
    echo "from           [email protected]"; \
    echo "user           [email protected]"; \
    echo "password       idikrthhmieukihz"; \
    echo "account default : gmail"; \
} > /etc/msmtprc


# Creamos un certificado SSL 
RUN openssl req -x509 -nodes -days 365 -newkey rsa:2048 \
   -keyout /etc/ssl/private/apache-selfsigned.key \
   -out /etc/ssl/certs/apache-selfsigned.crt \
   -subj "/C=MX/ST=Jalisco/L=Ocotlan/O=Instituto Tecnologico de Ocotlan/OU=SII/CN=localhost"

# Edita la configuración de Apache para habilitar SSL
RUN sed -i 's/ssl-cert-snakeoil.pem/apache-selfsigned.crt/' /etc/apache2/sites-available/default-ssl.conf \
    && sed -i 's/ssl-cert-snakeoil.key/apache-selfsigned.key/' /etc/apache2/sites-available/default-ssl.conf \
    && a2ensite default-ssl.conf


# Instalamos composer
RUN apt-get update && apt-get install -y --no-install-recommends \
        git \
        && rm -rf /var/lib/apt/lists/*
RUN php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"
RUN php composer-setup.php --install-dir=/usr/local/bin --filename=composer
RUN php -r "unlink('composer-setup.php');"

# Añadimos /usr/local/bin a la variable de entorno PATH
ENV PATH=$PATH:/usr/local/bin


# Instalamos node
RUN curl -sL https://deb.nodesource.com/setup_18.x | bash -
RUN apt-get install -y nodejs

# Instalamos git
RUN apt-get install -y git

# Variables de entorno
ENV PATH="/var/www/html/vendor/bin/:${PATH}"

# Limpiamos la cache
RUN apt-get clean && rm -rf /var/lib/apt/lists/*


# Habilitamos el modulo rewrite en la configuración de apache
RUN a2enmod rewrite

# Habilita el módulo SSL
RUN a2enmod ssl


# Damos permisos de escritura en las carpetas
COPY ./scripts/start-script.sh /start-script.sh
RUN apt-get update && apt-get install -y dos2unix
RUN dos2unix /start-script.sh
RUN chmod +x /start-script.sh
ENTRYPOINT ["/start-script.sh"]
CMD ["apache2-foreground"]

# Reinicia Apache para aplicar los cambios
RUN apache2ctl restart

WORKDIR /var/www/html/

EXPOSE 443

我已经

  • 重新启动 VSCode
  • 重新安装开发容器 vscode 扩展
  • 降级扩展
  • 重新安装docker
  • 重新启动我的电脑
docker docker-compose vscode-extensions vscode-devcontainer
1个回答
0
投票

devcontainer 扩展无法调用“docker compose”,如以下行所示:

[5613 ms] 开始:运行:docker-compose version --short

[5702 毫秒] Docker Compose 版本:

尝试更改 Dev Containers 扩展设置上的“Docker Compose Path”

© www.soinside.com 2019 - 2024. All rights reserved.