>  기사  >  백엔드 개발  >  Docker Compose를 사용하여 PHP 애플리케이션을 빠르게 배포

Docker Compose를 사용하여 PHP 애플리케이션을 빠르게 배포

PHPz
PHPz원래의
2023-10-12 09:25:46884검색

使用Docker Compose快速部署PHP应用程序

Docker Compose를 사용하여 PHP 애플리케이션을 빠르게 배포

소개:

Docker는 애플리케이션과 해당 종속성을 독립적인 컨테이너에 패키징하고 격리하여 실행할 수 있는 오픈 소스 컨테이너화 플랫폼입니다. Docker Compose는 다중 컨테이너 Docker 애플리케이션을 정의하고 실행하기 위한 도구입니다. 이 문서에서는 특정 코드 예제와 함께 Docker Compose를 사용하여 PHP 애플리케이션을 빠르게 배포하는 방법을 소개합니다.

1. 준비

시작하기 전에 Docker와 Docker Compose가 설치되어 있는지 확인해야 합니다. 운영 체제 유형에 따라 해당 단계를 따라 설치하십시오.

2. Docker Compose 파일 생성

프로젝트 루트 디렉터리에 docker-compose.yml이라는 파일을 생성하고 파일에 다음 내용을 작성합니다.

version: '3'
services:
  web:
    image: php:7.4-apache
    volumes:
      - ./src:/var/www/html
    ports:
      - "80:80"
    networks:
      - mynetwork
  db:
    image: mysql:8.0
    environment:
      - MYSQL_ROOT_PASSWORD=your_password
      - MYSQL_DATABASE=your_database
    volumes:
      - ./data:/var/lib/mysql
    networks:
      - mynetwork
networks:
  mynetwork:

위 예에서는 web과 db라는 두 가지 서비스를 정의했습니다. .

  • 웹 서비스는 php:7.4-apache 이미지를 사용하고 로컬 ./src 디렉터리를 컨테이너의 /var/www/html 디렉터리에 마운트하여 동기식 코드 업데이트를 수행합니다. 동시에 localhost를 통해 애플리케이션에 액세스할 수 있도록 컨테이너의 포트 80을 호스트의 포트 80에 매핑합니다.
  • db 서비스는 mysql:8.0 미러를 사용하며, 각각 MySQL 루트 비밀번호와 생성된 데이터베이스의 이름을 지정하는 데 사용되는 환경 변수 MYSQL_ROOT_PASSWORD 및 MYSQL_DATABASE가 설정됩니다. 또한 데이터베이스 데이터를 지속적으로 저장하기 위해 로컬 ./data 디렉터리를 컨테이너의 /var/lib/mysql 디렉터리에 마운트합니다.

3. PHP 애플리케이션 작성

프로젝트 루트 디렉터리에 src라는 폴더를 만들고 이 폴더에 PHP 애플리케이션 코드를 작성합니다.

4. 애플리케이션 시작

터미널을 열고 프로젝트 루트 디렉터리로 전환한 후 다음 명령을 실행하여 애플리케이션을 시작합니다.

docker-compose up -d

잠시만 기다리면 Docker가 자동으로 필요한 이미지를 다운로드하고 애플리케이션을 시작합니다.

5. 애플리케이션에 액세스합니다.

브라우저에서 http://localhost에 액세스하면 PHP 애플리케이션의 실행 결과를 볼 수 있습니다.

결론:

Docker Compose를 사용하면 PHP 애플리케이션을 빠르게 배포하고 애플리케이션의 반복성과 이식성을 보장할 수 있습니다. 이 글이 Docker Compose를 빠르게 시작하고 실제 애플리케이션에서 좋은 결과를 얻는 데 도움이 되기를 바랍니다. 즐거운 이용되시기 바랍니다!

참조 링크:

  • Docker 공식 문서: https://docs.docker.com/
  • Docker Compose 공식 문서: https://docs.docker.com/compose/

위 내용은 Docker Compose를 사용하여 PHP 애플리케이션을 빠르게 배포의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.