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
相关产品推荐
相关产品推荐

