
Drupal Docker: devcontainer
나는 이전에 Drupal 친화적 인 방식으로 setting up local development environments using vagrant 및 GitPod를 공유했습니다. 이 게시물은 (대부분) Oracle Linux 8을 기반으로 하는 Drupal 친화적 환경을 위한 Docker Desktop 설정을 구축한 방법에 대한 새로운 미니 시리즈를 시작합니다.
이에 대한 코드는 my GitHub 에 있습니다.
이 작업을 수행하려면 여러 파일이 필요합니다.
통합 방법에 대한 devcontainer.json VS Code
서로 다른 모든 컨테이너를 함께 묶는 방법에 대한 Docker-compose.yml 기본 Apache 컨테이너용 web.Dockerfile(Oracle Linux 기반) PHP-FPM 컨테이너용 php.Dockerfile(Oracle Linux 기반) MariaDB 데이터베이스 컨테이너용 db.Dockerfile(공식 MariaDB 이미지의 더 간단한 이미지)
VS Code를 열 때 호출되는 첫 번째 파일인 .devcontainer/devcontainer.json부터 시작하겠습니다.
가장 중요한 부분은 상단 근처에 있습니다. 여기에는 다음이 포함됩니다.
Docker 작성기 파일을 찾을 수 있는 위치:
연결할 사용자:
연결할 서비스와 백그라운드에서 시작할 다른 서비스:
필자의 경우 기본 Apache 컨테이너의 경우 웹이라고 하며 PHP 및 DB(MariaDB)에 대한 두 가지 다른 서비스가 있습니다.
연결 후 작업 공간이 되어야 하는 컨테이너의 위치:
이 컨테이너에 설치해야 하는 확장 및 설정을 정의할 수도 있습니다. the GitPod equivalent 와 달리 이것은 Open VSX 확장뿐만 아니라 모든 VS Code 확장이 될 수 있습니다. 나는 some of my favourite extensions in the past 를 작성했지만 이것은 내가 Drupal과 함께 특별히 사용하는 좋은 샘플입니다.
프로세스의 다양한 지점에서 실행되도록 다른 스크립트를 트리거할 수 있습니다.
내가 사용한 주요 기능은 postCreateCommand입니다. 컨테이너가 처음 빌드될 때 한 번만 실행됩니다. 이것은 전체 사이트를 구축하는 것이 훨씬 더 복잡합니다. 해당 스크립트에 대한 다른 게시물이 있을 것입니다.
또한 훨씬 간단한 postAttachCommand가 있습니다. 이것은 사용자가 postCreateCommand 스크립트에 의해 설정된 drush 및 composer와 같은 명령을 찾을 수 있는 위치를 알 수 있도록 ~/.bashrc만 소싱합니다.
이에 대한 코드는 my GitHub 에 있습니다.
개요
이 작업을 수행하려면 여러 파일이 필요합니다.
Devcontainer.json
VS Code를 열 때 호출되는 첫 번째 파일인 .devcontainer/devcontainer.json부터 시작하겠습니다.
가장 중요한 부분은 상단 근처에 있습니다. 여기에는 다음이 포함됩니다.
Docker 작성기 파일을 찾을 수 있는 위치:
"dockerComposeFile": "../docker-compose.yml",
연결할 사용자:
"remoteUser": "drupal",
연결할 서비스와 백그라운드에서 시작할 다른 서비스:
"service": "web",
"runServices": ["web", "php", "db"],
필자의 경우 기본 Apache 컨테이너의 경우 웹이라고 하며 PHP 및 DB(MariaDB)에 대한 두 가지 다른 서비스가 있습니다.
연결 후 작업 공간이 되어야 하는 컨테이너의 위치:
"workspaceFolder": "/var/www/html",
이 컨테이너에 설치해야 하는 확장 및 설정을 정의할 수도 있습니다. the GitPod equivalent 와 달리 이것은 Open VSX 확장뿐만 아니라 모든 VS Code 확장이 될 수 있습니다. 나는 some of my favourite extensions in the past 를 작성했지만 이것은 내가 Drupal과 함께 특별히 사용하는 좋은 샘플입니다.
"extensions": [
"gruntfuggly.todo-tree",
"eamodio.gitlens",
"gitkraken.gitkraken-authentication",
"cweijan.vscode-mysql-client2",
"esbenp.prettier-vscode",
"whatwedo.twig",
"marcostazi.vs-code-drupal",
"github.copilot",
"vscode-icons-team.vscode-icons",
"xdebug.php-debug",
],
스크립트
프로세스의 다양한 지점에서 실행되도록 다른 스크립트를 트리거할 수 있습니다.
내가 사용한 주요 기능은 postCreateCommand입니다. 컨테이너가 처음 빌드될 때 한 번만 실행됩니다. 이것은 전체 사이트를 구축하는 것이 훨씬 더 복잡합니다. 해당 스크립트에 대한 다른 게시물이 있을 것입니다.
"postCreateCommand": "/bin/bash -c \"/postCreateCommand.sh\"",
또한 훨씬 간단한 postAttachCommand가 있습니다. 이것은 사용자가 postCreateCommand 스크립트에 의해 설정된 drush 및 composer와 같은 명령을 찾을 수 있는 위치를 알 수 있도록 ~/.bashrc만 소싱합니다.
"postAttachCommand": "/bin/bash -c \"source ~/.bashrc\"",