도커 구성 작업이지만 비주얼 스튜디오 코드 개발 컨테이너를 사용하면 작업이 수행되지 않습니다.
도커와 컨테이너는 일반적으로 처음입니다.저는 장난을 치고 더 이상 진전이 없는 지점에 도달했습니다.저는 다른 질문들을 검색했지만 정답을 볼 수 없었습니다.그래서 저는 당신이 저를 도울 수 있기를 바랍니다.
저는 php:7.4-apache와 mariadb를 실행하는 두 개의 컨테이너를 가지고 있습니다.잘 작동하고 있으며 도커 작성 파일을 사용하면 모든 작업을 잘 시작할 수 있습니다.docker-compose up -d
.
여기 도커 작성 파일이 있습니다(이것은 나의 첫 번째 파일이므로 나는 그것에 대한 지식이 많지 않습니다).
version: '3.1'
services:
mariadb:
image: mariadb:latest
environment:
- MYSQL_DATABASE=mydb
- MYSQL_USER=myuser
- MYSQL_PASSWORD=secret
- MYSQL_ROOT_PASSWORD=docker
ports:
- "3306:3306"
volumes:
- ./database/storage
- ./database/src:/usr/src
restart: always
php:
image: php:7.4-apache
ports:
- 80:80
volumes:
- ./php/src:/var/www/html/
restart: always
제 "프로젝트 구조"는 다음과 같습니다.
지금 개발 컨테이너를 시작하면 도커 합성 파일을 사용하도록 선택할 수 있습니다.저는 이것을 했습니다. 그리고 제가 가장 먼저 이해하지 못한 것은 그 두 가지 서비스(php/mariadb) 중에서 선택해야 한다는 것입니다.그래서 저는 php를 사용해 보았습니다.작동하기 시작하고, 컨테이너가 보입니다.docker ps
하지만, 만약 내가 php-website에 접속하기를 원한다면,localhost:80
"웹 사이트"를 확인해 보십시오. 연결이 되지 않습니다.저는 도커를 사용하는 것과 같은 행동을 기대했습니다.하지만 이런 일은 일어나지 않습니다.devcontainer.json은 다음과 같은 이점이 있습니다.
// If you want to run as a non-root user in the container, see .devcontainer/docker-compose.yml.
{
"name": "Existing Docker Compose (Extend)",
// Update the 'dockerComposeFile' list if you have more compose files or use different names.
// The .devcontainer/docker-compose.yml file contains any overrides you need/want to make.
"dockerComposeFile": [
"..\\Docker-compose.yml",
"docker-compose.yml"
],
// The 'service' property is the name of the service for the container that VS Code should
// use. Update this value and .devcontainer/docker-compose.yml to the real service name.
"service": "php",
// The optional 'workspaceFolder' property is the path VS Code should open by default when
// connected. This is typically a file mount in .devcontainer/docker-compose.yml
"workspaceFolder": "/workspace",
// Set *default* container specific settings.json values on container create.
"settings": {
"terminal.integrated.shell.linux": null
},
// Add the IDs of extensions you want installed when the container is created.
"extensions": [],
// Use 'forwardPorts' to make a list of ports inside the container available locally.
"forwardPorts": [80],
// Uncomment the next line if you want start specific services in your Docker Compose config.
// "runServices": [],
// Uncomment the next line if you want to keep your containers running after VS Code shuts down.
// "shutdownAction": "none",
// Uncomment the next line to run commands after the container is created - for example installing curl.
// "postCreateCommand": "apt-get update && apt-get install -y curl",
// Uncomment to connect as a non-root user if you've added one. See https://aka.ms/vscode-remote/containers/non-root.
// "remoteUser": "vscode"
}
보시는 것처럼 포트 80을 포워딩해 보았지만 이것도 작동하지 않았습니다..dev 컨테이너 폴더 내의 docker-compose.yml이 원래의 docker-compose.yml과 동일하지 않다는 점도 혼란스럽습니다.
다음에 무엇을 해야 할지 모르겠습니다.저는 이 컨테이너 안에서 간단한 php 스크립트를 만들기 위해 비주얼 스튜디오 코드를 사용할 수 있고 나중에 mariadb에 연결할 수 있기를 바랍니다.mariadb와 php는 모두 별도의 컨테이너에서 실행되어야 합니다.음, 적어도 그게 제 희망이었어요.
---추가 정보---
Visual Studio Code에 표시되는 내용을 보려면 다음과 같이 몇 가지 스크린샷을 참조하십시오.
컨테이너에 있는 폴더를 엽니다.
그런 다음 Docker-compose.yml을 선택합니다(사용하면 정상적으로 작동합니다).docker-compose up
).
보시는 것처럼 어떤 서비스를 선택할지 묻는 메시지가 나타납니다.재미있군요, 두 서비스를 모두 실행하고 싶기 때문에...하지만 이 시나리오에서는 VS-Code를 통해 php 스크립트를 변경할 수 있으면 좋겠습니다.
도와 주셔서 감사해요.
-GreNait
언급URL : https://stackoverflow.com/questions/65061117/docker-compose-up-works-but-using-visual-studio-code-dev-container-doesnt
'programing' 카테고리의 다른 글
엔디언은 바이트의 비트 순서를 나타낼 수 있습니까? (0) | 2023.07.15 |
---|---|
정규 분포 그림을 그리는 방법 (0) | 2023.07.15 |
테이블의 int 열을 고유한 증분 값으로 업데이트 (0) | 2023.07.10 |
화력 기지 내 자유 계획의 제한 (0) | 2023.07.10 |
"org.springframework"를 호출할 수 없습니다.web.servlet.mvc.condition."this.condition"이(가) null이기 때문에 PatternsRequestCondition.getPatterns()"입니다. (0) | 2023.07.10 |