【GCP】 간편 무료! HTTPS의 Redmine docker

【2022-04-05 추억기】


마지막으로, 다시 무료로 구축하기 위해, 같은 공정을 해 보았습니다.
아래 링크가 새로운 콘솔 화면이기 때문에 여기도 참고하십시오.
h tps://다 yぃふぇ는 ck. 이 m/gcp-dd 371/

【2020/12/30 다시 추가】 결과적으로 무료였다


2020/03/14에 고정 외부 IP 유료화와 기사를 갱신했습니다만, 실질 무료인 것 같습니다.
유료로 변경은 되었습니다만, 「무료」라고 하는 취급으로부터 「유료이지만, 할인해」라고 하는 형태가 된 것 같습니다.
실질 무료 스타일이 된 것 같습니다.

개요


Redmine & docker-compose에서 HTTPS를 사용하고 싶었고 조사했지만 돈 피샤 정보가 없었습니다.Container-Optimized OS 에서 docker-compose 컨테이너 등을 사용해 시행착오했습니다만, 잘 가지 않았기 때문에 통상의 VM에서.
GCP에 무료 프레임으로 구축. 증명서가 올레올레이므로, 절반 정도 진지한 구축입니다.
작은 인스턴스에 비해 의외로 바삭바삭 움직이는 HTTPS 무료 Redmine.
  • 올레올레 인증서
  • 도커
  • docker-compose
  • Google Compute Engine
  • Redmine

  • GCP는 새로 만들지 않아도 되지만 GCE의 Always Free 프레임이 비어 있다고 가정합니다. (무료가 좋다면)

    GCP 등록


    GCE는 작성할 때 무료 평가판을 등록해야 합니다.
    GCP 프로젝트 만들기.

    인스턴스 생성


    Compute Engine 페이지에서 VM 생성.

    자, GCE의 무료 테두리는 다음과 같이 (2019-06-13 현재) 쓰여 있으므로, 그렇습니다.

    이번은 ↓처럼 했습니다.

    여기서 주의하고 싶은 것이, 디스크의 용량은 디폴트 10G가 되고 있습니다만, 30G까지 무료이므로 모처럼이라면 30G로 변경합시다.
    「720시간이 무료」라고 하는 것은, 30일간 무료.
    31일까지 있는 달은, 정중하게 여기가 744시간이 됩니다.

    우선 스왑 파일 작성


    무사히 VM이 작성 완료.
    메모리가 매우 적기 때문에 스왑으로 보충합니다.
    $ sudo fallocate -l 4G /swapfile
    $ sudo chmod 600 /swapfile
    $ sudo mkswap /swapfile
    $ sudo swapon /swapfile
    $ echo '/swapfile none swap sw 0 0' | sudo tee -a /etc/fstab
    

    올레올레 인증서 작성


    그런 다음 SSH로 들어가는 인증서를 만듭니다.

    자꾸 갑니다.
    마지막 공정은 상당히 시간이 걸린다(많은 경우가 있다).
    $ mkdir -p ~/redmine-docker/volumes/redmine/certs
    $ cd ~/redmine-docker/volumes/redmine/certs
    $ openssl genrsa -out redmine.key 2048
    $ openssl req -new -key redmine.key -out redmine.csr
    .
    .
    .
    Country Name (2 letter code) [AU]:JP
    State or Province Name (full name) [Some-State]:Tokyo
    Locality Name (eg, city) []:Shibuya
    Organization Name (eg, company) [Internet Widgits Pty Ltd]:Redmine Test Corp.
    Organizational Unit Name (eg, section) []:
    Common Name (e.g. server FQDN or YOUR name) []:redmine.sample.local
    Email Address []:
    A challenge password []:
    An optional company name []:
    
    $ openssl x509 -req -days 3650 -in redmine.csr -signkey redmine.key -out redmine.crt
    Signature ok
    .
    .
    .
    $ openssl dhparam -out dhparam.pem 2048
    Generating DH parameters, 2048 bit long safe prime, generator 2
    This is going to take a long time
    .
    .
    .
    

    시간대를 JST로

    $ sudo apt-get install -y dbus
    $ sudo timedatectl set-timezone Asia/Tokyo
    

    docker 및 docker-compose 설치


    docker 공식 절차에 따라 설치합니다.

    docker 설치

    $ sudo apt-get remove docker docker-engine docker.io containerd runc
    $ sudo apt-get update
    $ sudo apt-get install -y \
        apt-transport-https \
        ca-certificates \
        curl \
        gnupg2 \
        software-properties-common
    $ curl -fsSL https://download.docker.com/linux/debian/gpg | sudo apt-key add -
    $ sudo apt-key fingerprint 0EBFCD88
    pub   rsa4096 2017-02-22 [SCEA]
          9DC8 5822 9FC7 DD38 854A  E2D8 8D81 803C 0EBF CD88
    uid           [ unknown] Docker Release (CE deb) <[email protected]>
    sub   rsa4096 2017-02-22 [S]
    $ sudo add-apt-repository \
       "deb [arch=amd64] https://download.docker.com/linux/debian \
       $(lsb_release -cs) \
       stable"
    $ sudo apt-get update
    $ sudo apt-get install -y docker-ce docker-ce-cli containerd.io # ←気長に待つ
    $ sudo usermod -aG docker $USER
    
    사용자의 docker 그룹 추가의 반영을 위해서, 여기에서 일단 SSH를 빠져나간다 (SSH 윈도우를 닫는다).
    그리고 다시 SSH에서 안에.
    $ docker run hello-world
    .
    .
    .
    Hello from Docker!
    .
    .
    .
    
    안전하게 docker 설치가 완료되었습니다.
    sudo 없이 docker 명령을 실행할 수 있습니다.
    덧붙여서, docker 그룹에 사용자를 추가하는 것은 보안 문제가 있으므로주의하십시오.
    자세한 것은 각자 조사해 주세요.

    docker-compose 설치

    $ sudo -i
    # curl -L https://github.com/docker/compose/releases/download/1.24.0/docker-compose-`uname -s`-`uname -m` > /usr/local/bin/docker-compose
    # chmod +x /usr/local/bin/docker-compose
    # exit
    $ docker-compose --version
    docker-compose version 1.24.0, build 0aa59064
    
    무사히 docker-compose도 설치가 완료.

    Redmine 용 docker-compose.yml 만들기

    ~/redmine-docker/docker-compose.yml 를 작성합니다.
    브라우저의 vi로 붙여 넣으려고하면 (적어도 나는) 잘하지 못했기 때문에 오른쪽 상단의 톱니 바퀴 아이콘에서 만든 파일을 직접 업로드하는 것이 쉬웠습니다.


    ~/redmine-docker/docker-compose.yml
    version: '2'
    services:
      postgresql:
        image: sameersbn/postgresql:9.6-4
        environment:
        - DB_USER=redmine
        - DB_PASS=password
        - DB_NAME=redmine_production
    
      redmine:
        image: sameersbn/redmine:4.0.3-2
        depends_on:
        - postgresql
        environment:
        - TZ=Asia/Tokyo
    
        - DB_ADAPTER=postgresql
        - DB_HOST=postgresql
        - DB_PORT=5432
        - DB_USER=redmine
        - DB_PASS=password
        - DB_NAME=redmine_production
    
        - REDMINE_PORT=443
        - REDMINE_HTTPS=true
        - REDMINE_RELATIVE_URL_ROOT=
        - REDMINE_SECRET_TOKEN=
        - NGINX_HSTS_MAXAGE=2592000
        
        - REDMINE_SUDO_MODE_ENABLED=false
        - REDMINE_SUDO_MODE_TIMEOUT=15
    
        - REDMINE_CONCURRENT_UPLOADS=2
    
        - REDMINE_BACKUP_SCHEDULE=
        - REDMINE_BACKUP_EXPIRY=
        - REDMINE_BACKUP_TIME=
    
        ports:
        - 443:443
        - 80:80
        volumes:
        - ./volumes/redmine/certs:/home/redmine/data/certs
    

    홈에 업로드되기 때문에 ~/redmine-docker/ 안으로 파일을 이동합니다.
    $ mv ~/docker-compose.yml ~/redmine-docker/docker-compose.yml
    
    기동도 기장에 기다리자.
    $ cd ~/redmine-docker/
    $ docker-compose up -d
    
    자, GCE의 외부 IP를 클릭하여 액세스하면 ...

    올레올레 증명서의 원 쿠션.
    고급 설정에서 "~에 액세스(안전하지 않음)"를 선택합니다.

    무사히 올레올레 증명서를 사용한 Redmine이 완성되었습니다.
    관리자
    초기 ID: admin
    초기 PW:admin

    [참고]
    htps // 사쿠라비 rd1. 하테나 bぉg. 코m/엔트리/2019/03/12/034152
    htps : // 기주 b. 코 m / 사메에 rsb

    좋은 웹페이지 즐겨찾기