(본 글에서는 SSH, Docker 사용법등은 기본적으로 이해한다고 생각하고 글을 적습니다.)
안녕하세요. 오늘은 6.x에서 7.0으로 업그레이드한 경험담을 적어볼까 합니다.
모델은 416Play로 메모리를 업그레이드 하여 8기가로 사용중입니다.
기본적으로 설치되지 않은 Docker를 수동으로 설치하여 사용했었습니다.
Gitlab과 Dokuwiki는 패키지에서 설치해서 사용중에 있었습니다.
Gitlab은 Docker가 있어야 설치가 됐던 것으로 기억합니다.
그런데.. 7.0에서 Gitlab과 Dokuwiki를 지원하지 않는다는 청천벽력같은 소리로 주저했었는데
오늘 Dokuwiki와 Gitlab 둘다 수동으로 Docker-Compose를 이용해 새로 설치하고 마이그레이션을 했죠.
먼저 제어판에서 터미널을 열수 있어야 합니다. SSH서비스 활성화를 체크하고, 보안을 위해 22포트를 2200포트로 설정하고 저장합니다.
Putty등을 이용하여 터미널에 시놀로지 NAS의 아이피와 계정ID/비번로 로그인합니다. 변경한 포트를 22에서 2200으로 설정하는 것 잊지 마세요.
시놀로지에서 관리를 편하게 하기 위해 저는 Docker라는 폴더를 하나 생성했습니다.
Dokuwiki를 Docker로 수동설치
docker-compose.yml
version: '2'
services:
dokuwiki:
image: docker.io/bitnami/dokuwiki:20200729
ports:
- '20080:8080'
- '20443:8443'
volumes:
- '/volume1/docker/dokuwiki/data:/bitnami/dokuwiki'
networks:
- 'dokuwiki-network'
networks:
dokuwiki-network:
driver: bridge
아래 명령을 이용해 위 내용을 복사/붙여넣기 합니다.
mkdir -f /volume1/Docker/Dokuwiki/data
chown -R 1001:1001 /volume1/Docker/Dokuwiki/data
cd /volume1/Docker/Dokuwiki
vi docker-compose.yml
그리고 저장합니다.
docker-compose up -d
이러면 설치 끝.
웹 브라우저에서 시놀로지 NAS의 아이피와 20080포트를 이용해 접속하면 Dokuwiki의 페이지가 표시됩니다.
Dokuwiki 마이그레이션
Dokuwiki는 파일DB를 사용하기 때문에 그냥 폴더를 우선 압축해서 백업합니다.
그리고 Docker의 볼륨으로 설정한 "/volume1/Docker/Dokuwiki/data"경로에 과거 파일들을 복사합니다.
data/attic
data/media
data/meida_attic
data/media_meta
data/meta
data/pages
저는 이렇게 복사/붙여넣기 하니 데이터가 제대로 보이더군요.
Gitlab 14.x Docker로 수동설치
똑같은 방법으로 저장합니다. 중요한 점은 Volumes에 있는 경로를 미리 생성해야 합니다.
docker-compose.yml
version: '2.3'
services:
redis:
restart: always
image: redis:6.2
command:
- --loglevel warning
volumes:
- /volume1/docker/redis-data:/data:Z
networks:
- gitlab-bridge
ports:
- "36379:6379"
postgresql:
restart: always
image: sameersbn/postgresql:12-20200524
volumes:
- /volume1/docker/postgres-data:/var/lib/postgresql:Z
environment:
- DB_USER=gitlab
- DB_PASS=password
- DB_NAME=gitlabhq_production
- DB_EXTENSION=pg_trgm,btree_gist
networks:
- gitlab-bridge
ports:
- "35432:5432"
gitlab:
restart: always
image: sameersbn/gitlab:14.1.1
depends_on:
- redis
- postgresql
ports:
- "30080:80"
- "30022:22"
volumes:
- /volume1/docker/gitlab-data:/home/git/data:Z
healthcheck:
test: ["CMD", "/usr/local/sbin/healthcheck"]
interval: 5m
timeout: 10s
retries: 3
start_period: 5m
networks:
- gitlab-bridge
environment:
- DEBUG=false
- DB_ADAPTER=postgresql
- DB_HOST=postgresql
- DB_PORT=5432
- DB_USER=gitlab
- DB_PASS=password
- DB_NAME=gitlabhq_production
- REDIS_HOST=redis
- REDIS_PORT=6379
- TZ=Asia/Seoul
- GITLAB_TIMEZONE=Seoul
- GITLAB_HTTPS=false
- SSL_KEY_PATH=
- SSL_DHPARAM_PATH=
- SSL_CERTIFICATES_PATH=
- SSL_SELF_SIGNED=true
- GITLAB_HOST=<본인의 NAS아이피를 입력하세요>
- GITLAB_PORT=30080
- GITLAB_SSH_PORT=30022
- GITLAB_RELATIVE_URL_ROOT=
- GITLAB_SECRETS_DB_KEY_BASE=HtMHINC5EA0FfwrQvTczZUGgVepaGQWS
- GITLAB_SECRETS_SECRET_KEY_BASE=HtMHINC5EA0FfwrQvTczZUGgVepaGQWS
- GITLAB_SECRETS_OTP_KEY_BASE=HtMHINC5EA0FfwrQvTczZUGgVepaGQWS
- GITLAB_ROOT_PASSWORD=
- GITLAB_ROOT_EMAIL=
- GITLAB_NOTIFY_ON_BROKEN_BUILDS=true
- GITLAB_NOTIFY_PUSHER=false
- GITLAB_EMAIL=notifications@example.com
- GITLAB_EMAIL_REPLY_TO=noreply@example.com
- GITLAB_INCOMING_EMAIL_ADDRESS=reply@example.com
- GITLAB_BACKUP_SCHEDULE=daily
- GITLAB_BACKUP_TIME=01:00
- SMTP_ENABLED=false
- SMTP_DOMAIN=www.example.com
- SMTP_HOST=smtp.gmail.com
- SMTP_PORT=587
- SMTP_USER=mailer@example.com
- SMTP_PASS=password
- SMTP_STARTTLS=true
- SMTP_AUTHENTICATION=login
- IMAP_ENABLED=false
- IMAP_HOST=imap.gmail.com
- IMAP_PORT=993
- IMAP_USER=mailer@example.com
- IMAP_PASS=password
- IMAP_SSL=true
- IMAP_STARTTLS=false
- OAUTH_ENABLED=false
- OAUTH_AUTO_SIGN_IN_WITH_PROVIDER=
- OAUTH_ALLOW_SSO=
- OAUTH_BLOCK_AUTO_CREATED_USERS=true
- OAUTH_AUTO_LINK_LDAP_USER=false
- OAUTH_AUTO_LINK_SAML_USER=false
- OAUTH_EXTERNAL_PROVIDERS=
- OAUTH_CAS3_LABEL=cas3
- OAUTH_CAS3_SERVER=
- OAUTH_CAS3_DISABLE_SSL_VERIFICATION=false
- OAUTH_CAS3_LOGIN_URL=/cas/login
- OAUTH_CAS3_VALIDATE_URL=/cas/p3/serviceValidate
- OAUTH_CAS3_LOGOUT_URL=/cas/logout
- OAUTH_GOOGLE_API_KEY=
- OAUTH_GOOGLE_APP_SECRET=
- OAUTH_GOOGLE_RESTRICT_DOMAIN=
- OAUTH_FACEBOOK_API_KEY=
- OAUTH_FACEBOOK_APP_SECRET=
- OAUTH_TWITTER_API_KEY=
- OAUTH_TWITTER_APP_SECRET=
- OAUTH_GITHUB_API_KEY=
- OAUTH_GITHUB_APP_SECRET=
- OAUTH_GITHUB_URL=
- OAUTH_GITHUB_VERIFY_SSL=
- OAUTH_GITLAB_API_KEY=
- OAUTH_GITLAB_APP_SECRET=
- OAUTH_BITBUCKET_API_KEY=
- OAUTH_BITBUCKET_APP_SECRET=
- OAUTH_BITBUCKET_URL=
- OAUTH_SAML_ASSERTION_CONSUMER_SERVICE_URL=
- OAUTH_SAML_IDP_CERT_FINGERPRINT=
- OAUTH_SAML_IDP_SSO_TARGET_URL=
- OAUTH_SAML_ISSUER=
- OAUTH_SAML_LABEL="Our SAML Provider"
- OAUTH_SAML_NAME_IDENTIFIER_FORMAT=urn:oasis:names:tc:SAML:2.0:nameid-format:transient
- OAUTH_SAML_GROUPS_ATTRIBUTE=
- OAUTH_SAML_EXTERNAL_GROUPS=
- OAUTH_SAML_ATTRIBUTE_STATEMENTS_EMAIL=
- OAUTH_SAML_ATTRIBUTE_STATEMENTS_NAME=
- OAUTH_SAML_ATTRIBUTE_STATEMENTS_USERNAME=
- OAUTH_SAML_ATTRIBUTE_STATEMENTS_FIRST_NAME=
- OAUTH_SAML_ATTRIBUTE_STATEMENTS_LAST_NAME=
- OAUTH_CROWD_SERVER_URL=
- OAUTH_CROWD_APP_NAME=
- OAUTH_CROWD_APP_PASSWORD=
- OAUTH_AUTH0_CLIENT_ID=
- OAUTH_AUTH0_CLIENT_SECRET=
- OAUTH_AUTH0_DOMAIN=
- OAUTH_AUTH0_SCOPE=
- OAUTH_AZURE_API_KEY=
- OAUTH_AZURE_API_SECRET=
- OAUTH_AZURE_TENANT_ID=
networks:
gitlab-bridge:
driver: bridge
Gitlab 마이그레이션
Gitlab은 그냥 다 Pull받아서 수동으로 Push하는 방식으로 하고 있습니다. 개인적인 소스이기 때문에 그렇게 많이 히스토리를 갖고 있지는 않아서 이렇게 했지만 히스토리를 모두 마이그레이션 해야 하는 상황이라면 Gitlab의 Export해서 Import하는 방식을 사용하거나 Git Mirror명령을 이용해서 하는 방법을 권유드립니다.
Gitlab과 Dokuwiki 잠시만 안녕하며 삭제
7.0 설치하기전에 미리 삭제했습니다.
7.0 업그레이드
전 전에 수동설치를 위해 받아둔 파일로 설치했는데 6.x 최종버전 업데이트를 하셨다면 7.0 업그레이드 버튼이 활성화 되어 있을 겁니다.
약 10~20분 정도 걸린다기에 샤워하고 오니 다 끝나있더군요.
미지원 패키지 제거
Node v4, Node v8, Python3 등이 미지원 된다는 표시가 되어 삭제했습니다. 6.x에서는 잘 삭제가 되지 않았던 버전인데 잘도 삭제되더군요.
그런데 Docker가 미지원 버전이라는 청천벽력같은 메시지가 표시되어있었습니다.
제거... (제거 시 이미지, 컨테이너, 데이터 제거는 절대 체크하지 마세요)
Docker 수동설치
https://archive.synology.com/download/Package/Docker
Synology Archive Download Site - Index of /download/Package/Docker
archive.synology.com
위 경로에서 최신버전의 Docker설치파일을 다운로드 받습니다.
그리고 패키지 센터 우측상단을 보시면 "수동설치"를 클릭해서 다운받은 파일을 이용해 설치합니다.
만약 잘못된 파일이라고 표시되면 다운로드를 다시 해서 해보시기 바랍니다.
Gitlab과 Dokuwiki 시작
우리는 수동으로 설치했기 때문에 터미널에서 docker-compose up -d 명령을 이용해 각각 다시 실행합니다.
아... 끝났네요.
'써드파티 도구 > 유용한 도구' 카테고리의 다른 글
D-ID를 이용한 나를 대신해 스크립트를 읽어주는 아바타 생성기 (0) | 2023.03.04 |
---|---|
스크립트 기반 Chocolatey 설치하기 (0) | 2023.02.13 |
[2021.08] XCopy 사용법 (0) | 2021.08.06 |
[2021.02] MKDocs (3) - Docker로 실행하기 (0) | 2021.02.23 |
[2021.02] MKDocs (1) - 소개 및 설정방법 (0) | 2021.02.23 |