我一直在这个项目中顺利工作,直到今天早上一切都工作正常。 我的同事正在运行相同的开发容器,并且它适用于他们。我们似乎找不到导致它无法构建的原因。 VSCode Dev Container 扩展无法执行
docker-compose -f /home/oscar/reditec/sii-ci4/docker-compose-dev.yml config
我已经
输出日志如下:
[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
我已经
devcontainer 扩展无法调用“docker compose”,如以下行所示:
[5613 ms] 开始:运行:docker-compose version --short
[5702 毫秒] Docker Compose 版本:
尝试更改 Dev Containers 扩展设置上的“Docker Compose Path”