Drupal Docker: devcontainer

Drupal Docker: devcontainer

2022-10-13 last update

6 minutes reading docker drupal devops
나는 이전에 Drupal 친화적 인 방식으로 setting up local development environments using vagrantGitPod를 공유했습니다. 이 게시물은 (대부분) 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 이미지의 더 간단한 이미지)

  • 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\"",