Windows10에 Docker Compose로 Redmine 도입

목적



Windows10 환경에 Docker를 이용하여 Redmine, Gitlab, Jenkins의 환경 세트를
반복 구축할 수 있도록 실제로 시도한 내용을 남겨 둡니다.

기재 범위



아래 전제 조건에 따라 Docker Desktop for Windows를 설치하고
Docker Compose를 이용하여 Redmine을 도입하는 곳까지를 기재합니다.

시험에 있어서, 이하 사이트를 참고로 했습니다.
  • 【입문】 최초의 Docker Desktop for Windows의 인스톨과 CentOS의 가상 환경 구축의 셋업
  • Docker-docs-ko/Docker-compose

  • 전제 조건


  • 에디션: Windows10 Pro
  • 프로세서: Intel(R) Core(TM) i7-7600U CPU @ 2.80GHz 2.90GHz
  • 구현 RAM: 16.0GB
  • 시스템 유형: 64비트 운영 체제, x64 기반 프로세서
  • Docker Desktop for Windows v20.10.6
  • docker/compose 1.29.1

  • 사전 준비



    Windows용 Docker Desktop을 설치하는 Windows 컴퓨터에 대해 Hyper-V 설정을 사용하도록 설정합니다.
  • 제어판 열기
  • 프로그램을 선택하고 프로그램 및 기능을 엽니 다
  • Windows 기능을 활성화 또는 비활성화하도록 선택
  • 아래의 Hyper-V 체크 박스에 체크가 없으면 체크를 넣고 OK 버튼을 누릅니다.
  • Windows 시스템 재부팅


  • Docker Desktop for Windows 설치


  • 아래의 사이트에서 「Download for Windows」버튼을 누르고, 인스톨러를 다운로드해 실행한다.

  • Docker Desktop for Mac and Windows | Docker


    Windows PowerShell(관리자 권한) 시작



    Windows PowerShell 시작은 다음 중 하나로 시작할 수 있습니다.
    두 경우 모두 별도의 창에서 PowerShell이 ​​시작됩니다.
  • 명령 프롬프트를 시작하고 다음 명령을 입력하십시오
  • @powershell -NoProfile -ExecutionPolicy unrestricted -Command "Start-Process PowerShell.exe -Verb runas"
    
  • 시작 메뉴에서 "파일 이름으로 실행"에서 "powershell"을 입력하고 시작한 후 다음 명령을 입력하십시오.
    Start-Process PowerShell.exe -Verb runas
    

    Docker 버전 확인



    설치한 Docker 버전을 확인합니다.
    Windows PowerShell
    Copyright (C) Microsoft Corporation. All rights reserved.
    
    PS C:\Users\xxxx> docker version
    Client:
     Cloud integration: 1.0.14
     Version:           20.10.6
     API version:       1.41
     Go version:        go1.16.3
     Git commit:        370c289
     Built:             Fri Apr  9 22:49:36 2021
     OS/Arch:           windows/amd64
     Context:           default
     Experimental:      true
    
    Server: Docker Engine - Community
     Engine:
      Version:          20.10.6
      API version:      1.41 (minimum version 1.12)
      Go version:       go1.13.15
      Git commit:       8728dd2
      Built:            Fri Apr  9 22:44:56 2021
      OS/Arch:          linux/amd64
      Experimental:     false
     containerd:
      Version:          1.4.4
      GitCommit:        05f951a3781f4f2c1911b05e61c160e9c30eaa8e
     runc:
      Version:          1.0.0-rc93
      GitCommit:        12644e614e25b05da6fd08a38ffa0cfe1903fdec
     docker-init:
      Version:          0.19.0
      GitCommit:        de40ad0
    

    Docker Compose 버전 확인



    공식 사이트(일본어화): Docker-docs-ko/Docker-compose 에도 기재되어 있습니다만
    Docker Desktop for Windows에는 Docker Compose가 일부에 포함되어 이미 설치되어 있습니다.
    PS C:\WINDOWS\system32> docker-compose --version
    docker-compose version 1.29.1, build c34c88b2
    

    디렉토리 구성



    이번 시도한 디렉토리 구성은 다음과 같이 작성하여 컨테이너 파기와 함께 데이터가 손실되지 않도록
    외부 마운트 대상 (컨테이너 외부)으로 "data"디렉토리는 별도로 나뉩니다.
    C:\DOCKER
    └─my_prot01
            docker-compose.yml
    └─data
      └─my_prot01
      └─db
    

    docker-compose.yml



    AWS EC2에 Docker Compose로 Redmine 배포 작성시에 기재된 docoker-compose.yml의 내용을 Windows 용으로 수정하고 있습니다.
    version: '3.9'
    
    services:
      redmine:
        image: redmine:passenger
        container_name: redmine
        ports:
          - 3000:3000
        environment:
          TZ: Asia/Tokyo
          REDMINE_DB_MYSQL: mysql
          REDMINE_DB_DATABASE: redmine
          REDMINE_DB_USERNAME: redmine
          REDMINE_DB_PASSWORD: redmine
          REDMINE_DB_ENCODING: utf8
        depends_on:
          - mysql
        restart: always
        volumes:
          - ../data/my_prot01/redmine/files:/usr/src/redmine/files
          - ../data/my_prot01/redmine/redmine/log:/usr/src/redmine/log
          - ../data/my_prot01/redmine/plugins:/usr/src/redmine/plugins
          - ../data/my_prot01/redmine/redmine/public/themes:/usr/src/redmine/public/themes
    
      mysql:
        image: mysql:5.7
        container_name: mysql
        restart: always
        environment:
          TZ: Asia/Tokyo
          MYSQL_ROOT_PASSWORD: devops
          MYSQL_DATABASE: redmine
          MYSQL_USER: redmine
          MYSQL_PASSWORD: redmine
        volumes:
          - ../data/db:/var/lib/mysql
        command: mysqld --character-set-server=utf8 --collation-server=utf8_unicode_ci
    

    docker-compose 명령을 실행하여 Docker 컨테이너(여러 개)를 백그라운드 시작


    PS C:\docker\my_prot01> docker-compose up -d
    Docker Compose is now in the Docker CLI, try `docker compose up`
    
    Creating mysql ... done
    Creating redmine ... done
    
  • 비망록

  • 위의 명령을 실행할 때 볼륨에 지정한 디렉토리 권한에 대한 대화 상자가 표시되었습니다.
    Share it를 선택(volumes 지정분만 표시)


    컨테이너 상태 확인


    PS C:\docker\my_prot01> docker ps
    CONTAINER ID   IMAGE               COMMAND                  CREATED          STATUS          PORTS                                       NAMES
    7ebd216d48c5   redmine:passenger   "/docker-entrypoint.…"   24 minutes ago   Up 23 minutes   0.0.0.0:3000->3000/tcp, :::3000->3000/tcp   redmine
    f35646564e40   mysql:5.7           "docker-entrypoint.s…"   24 minutes ago   Up 24 minutes   3306/tcp, 33060/tcp                         mysql
    

    Redmine 방문



    브라우저를 시작하고 http://localhost:3000에 액세스합니다.
    아래와 같이 Redmine 화면이 표시되면 완료.


    Redmine 최초 액세스 시


  • 로그인 링크를 누르면 로그인 ID와 비밀번호는 "admin"을 입력하고 "로그인"버튼을 누릅니다.
  • 첫회는 이하 패스워드 변경 화면으로 천이하므로, 임의의 패스워드로 변경.


  • 다음 예정



    Windows10에 Docker Compose로 Jenkins를 도입하는 기사를 투고 예정.

    좋은 웹페이지 즐겨찾기