You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

VSCode Dev Container扩展无法构建容器求助

问题:VSCode Dev Container无法执行docker-compose config命令导致容器构建失败

此前项目开发一切正常,但今早VSCode Dev Container扩展执行docker-compose -f /home/oscar/reditec/sii-ci4/docker-compose-dev.yml config命令失败,容器无法构建。同事使用相同的开发容器配置可正常运行,目前尚未找到问题原因。

已尝试的操作

  • 重启VSCode
  • 重新安装Dev Container扩展
  • 降级Dev Container扩展版本
  • 重新安装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: # 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"  # SMTP端口
      - "8025:8025"  # 网页界面端口

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

dockerfile.dev 内容

FROM php:8.2.6-apache

# 更新可用软件包列表
RUN apt-get update

# 确保locales包可用
RUN apt-get install --reinstall -y locales

# 取消注释要使用的区域设置
RUN sed -i 's/# es_MX.UTF-8 UTF-8/es_MX.UTF-8 UTF-8/' /etc/locale.gen

# 生成所选区域设置
RUN locale-gen es_MX.UTF-8

# 设置环境变量
ENV LANG es_MX.UTF-8
ENV LANGUAGE es_MX
ENV LC_ALL es_MX.UTF-8

# 更新区域设置配置
RUN dpkg-reconfigure --frontend noninteractive locales


# 安装libzip库
RUN apt-get update && apt-get install -y --no-install-recommends \
        libzip-dev \
        && rm -rf /var/lib/apt/lists/*


# 安装所需的PHP扩展
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

# 安装并配置邮件发送工具
# 安装msmtp
RUN apt-get update && apt-get install -y msmtp
# 配置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           ocotlan.tecnm@gmail.com"; \
    echo "user           ocotlan.tecnm@gmail.com"; \
    echo "password       idikrthhmieukihz"; \
    echo "account default : gmail"; \
} > /etc/msmtprc


# 创建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"

# 修改Apache配置以启用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


# 安装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');"

# 将/usr/local/bin添加到PATH环境变量
ENV PATH=$PATH:/usr/local/bin


# 安装Node.js
RUN curl -sL https://deb.nodesource.com/setup_18.x | bash -
RUN apt-get install -y nodejs

# 安装Git
RUN apt-get install -y git

# 环境变量
ENV PATH="/var/www/html/vendor/bin/:${PATH}"

# 清理缓存
RUN apt-get clean && rm -rf /var/lib/apt/lists/*


# 启用Apache的rewrite模块
RUN a2enmod rewrite

# 启用SSL模块
RUN a2enmod ssl


# 设置文件夹写入权限
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"]

# 重启Apache以应用更改
RUN apache2ctl restart

WORKDIR /var/www/html/

EXPOSE 443

内容的提问来源于stack exchange,提问作者Oscar Garcia

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.10 16:12:01