亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

VSCode Remote - 添加到現有 - 打破容器

VSCode Remote - 添加到現有 - 打破容器

PHP
UYOU 2023-05-26 16:29:34
我有一個使用 docker-compose 部署運行的 LAMP 應用程序。docker-compose.yml:app_web:    depends_on:      - app_db    build: ./web    ports:       - '3000:80'    volumes:      - ./web/www:/var/www/html    environment:      - MYSQL_DATABASE=appdb      - MYSQL_USER=appuser      - MYSQL_PASSWORD=password文件:  FROM php:7.4-apache  WORKDIR /var/www  RUN apt-get update \    && apt-get install -y wget \    && rm -rf /var/lib/apt/lists/*  RUN apt-get update \      && apt-get install -y git  RUN docker-php-ext-install pdo pdo_mysql mysqli  RUN a2enmod rewrite  COPY ./www /var/www/html這非常有效,為localhost:3000我提供了一個可用的網絡應用程序。我想使用 VSCode 遠程容器來改進我的調試。第 1 步是將它添加到我的 docker 實例中。我已經點擊Remote Containers: Add Development Container Configuration并選擇了“From docker-compose.yaml”然后選擇了app_web。然后我可以在容器中重新打開。這啟動了一些在 Docker Desktop 中看起來像以前一樣的東西,但是,Apache 沒有運行,當我啟動它時service apache2 start它無法訪問我從 PHP 設置的 ENV 變量,當我最初啟動它。
查看完整描述

1 回答

?
12345678_0001

TA貢獻1802條經驗 獲得超5個贊

啊,所以,稍后想一想,.devcontainer\docker-compose.yml 以:


 # Overrides default command so things don't shut down after the process ends.

    command: /bin/sh -c "while sleep 1000; do :; done"

默認命令應該是 apache2-foreground,它在 php 圖像中啟動 Apache2。所以刪除它,并依靠主 dockerfile 末尾的命令來獲取 php 圖像解決了這個問題。


.devcontainer\docker-compose.yml


#-------------------------------------------------------------------------------------------------------------

# Copyright (c) Microsoft Corporation. All rights reserved.

# Licensed under the MIT License. See https://go.microsoft.com/fwlink/?linkid=2090316 for license information.

#-------------------------------------------------------------------------------------------------------------


version: '3'

services:

  # Update this to the name of the service you want to work with in your docker-compose.yml file

  app_web:

    # If you want add a non-root user to your Dockerfile, you can use the "remoteUser"

    # property in devcontainer.json to cause VS Code its sub-processes (terminals, tasks, 

    # debugging) to execute as the user. Uncomment the next line if you want the entire 

    # container to run as this user instead. Note that, on Linux, you may need to 

    # ensure the UID and GID of the container user you create matches your local user. 

    # See https://aka.ms/vscode-remote/containers/non-root for details.

    #

    # user: vscode


    # Uncomment if you want to override the service's Dockerfile to one in the .devcontainer 

    # folder. Note that the path of the Dockerfile and context is relative to the *primary* 

    # docker-compose.yml file (the first in the devcontainer.json "dockerComposeFile"

    # array). The sample below assumes your primary file is in the root of your project.

    #

    # build:

    #   context: .

    #   dockerfile: .devcontainer/Dockerfile


    volumes:

      # Update this to wherever you want VS Code to mount the folder of your project

      - .:/workspace:cached


      # Uncomment the next line to use Docker from inside the container. See https://aka.ms/vscode-remote/samples/docker-from-docker-compose for details.

      # - /var/run/docker.sock:/var/run/docker.sock 


    # Uncomment the next four lines if you will use a ptrace-based debugger like C++, Go, and Rust.

    # cap_add:

    #   - SYS_PTRACE

    # security_opt:

    #   - seccomp:unconfined


    # LEAVE THE DEFAULT COMMAND ALONE!


查看完整回答
反對 回復 2023-05-26
  • 1 回答
  • 0 關注
  • 118 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號