CentOS 8安裝docker-ce

第一次安裝CentOS 8 , 也第一次在上面安裝docker-ce版本,因此記錄下來版本不一致衝突的解決方式

簡單的敘述就是 CentOS 8 目前的containerd-io 版本低於 1.2.2-3 , 無法安裝docker-ce 19版本 , 處理方式就是先手動安裝大於1.2.2-3的containerd-io

dnf install -y epel-release
dnf update
dnf install -y yum-utils  device-mapper-persistent-data lvm2
dnf config-manager --add-repo=https://download.docker.com/linux/centos/docker-ce.repo
## containerd.io-1.2.2-3以上
wget https://download.docker.com/linux/centos/7/x86_64/stable/Packages/containerd.io-1.2.6-3.3.el7.x86_64.rpm
rpm -Uvh containerd.io-1.2.6-3.3.el7.x86_64.rpm
dnf -y  install docker-ce-cli docker-ce --nobest
systemctl enable docker
systemctl start docker
################################################
## 安裝完畢,請更改預設存放路徑
## 編輯 /lib/systemd/system/docker.service
## 找出
## ExecStart=/usr/bin/docker 
## 改成
## ExecStart=/usr/bin/docker --data-root <你的新路徑>
################################################

使用docker安裝nextcloud

新版安裝方式請到這裡查看

——————-以下是舊版安裝方式——————-

  1. 建立volume
  2. 設定mariadb data
  3. 執行
  4. 設定trusted_domain

建立volume

 docker volume create nextcloud-www
 docker volume create nextcloud-app
 docker volume create nextcloud-config
 docker volume create nextcloud-data
 docker volume create nextcloud-theme 

確認 mariadb 資料庫伺服器是否準備好

執行docker指令

docker run -d -p <對應的port>:80 -v nextcloud-www:/var/www/html -v nextcloud-app:/var/www/html/custom_apps -v nextcloud-config:/var/www/html/config -v nextcloud-data:/var/www/html/data -v nextcloud-theme:/var/www/html/themes/mycustom --link <docker資料庫名稱>:mysql -e MYSQL_DATABASE=nextcloud -e MYSQL_USER=root -e MYSQL_PASSWORD=<密碼> -e MYSQL_HOST=mysql --restart=always --name nextcloud nextcloud 

若有apache或是nginx作為反向proxy, 將https帶到nextcloud, 需設定trust_domain(網站會提醒)

httpd設定

# for CalDav
RewriteEngine On 
RemoteIPHeader X-Forwarded-For
RewriteRule ^/\.well-known/carddav https://%{SERVER_NAME}/remote.php/dav/ [R=301,L] RewriteRule ^/\.well-known/caldav https://%{SERVER_NAME}/remote.php/dav/ [R=301,L] 
# form redirect
<VirtualHost *:80>
    ServerName <server name>
    Redirect permanent / https://<server name>/
</VirtualHost>

<VirtualHost *:443> 
  # form security
  <IfModule mod_headers.c>
    Header always set Strict-Transport-Security "max-age=15552000; includeSubDomains"
  </IfModule>
</VirtualHost>

nextcloud config設定

若使用httpd proxy 的方式需要加入以下設定, 以免登入轉圈圈無法進入頁面, 修改 config.php 檔案

'overwritehost' => '<主機名稱>',
'overwriteprotocol' => 'https',

執行command

 docker exec --user www-data <CONTAINER_ID> php occ 
例入遇到上傳檔案失敗, 或是一些檔案錯誤可執行
docker exec --user www-data <container id> php occ files:scan --all

windows 10筆電, 安裝office記實

最近發現朋友買windows 10筆電, 內建office 365試用版, 但朋友手上自己有買單幾版的office 2010, 安裝之後,居然還一直提醒要註冊office 365, 解決方式如下:

  1. 移除license,
    powershell:
    cscript "$Env:Programfiles\Microsoft Office\Office16\OSPP.VBS" /dstatus
    

    cmd:

    cscript "%Programfiles%\Microsoft Office\Office16\OSPP.VBS" /dstatus
    

    以上指令可找出office 365的license 然後移除掉

    cscript "$Env:Programfiles\Microsoft Office\Office16\OSPP.VBS" /unpkey:
    

    unpkey: 後面接的是該office 365的key

  2. 使用windows的移除程式, 移除windows 商店的office軟體
  3. 執行regedit ,刪除 OEM file
    HKEY_LOCAL_MACHIN/SOFTWARE/Microsoft/Office/16.0/Common
     Delete OEM file
    HKEY_LOCAL_MACHIN/SOFTWARE/WOW6432Node/Microsoft/Office/16.0/Common
     Delete OEM file
    

Android 畫面內容更新注意事項

通常畫面更新前, 需要背景處理的工作, 有時候會耗掉一些時間, 若使用

runOnUIThread 會造成畫面停頓,好像當掉一樣, 此時可以使用AsyncTask處理

class MyAsyncTask extends AsyncTask<Void, Void, Void>{
   
    @Override
    protected Void doInBackground(Void... params) {
    // 這裡處理背景工作
      return null;
    }

    @Override
    protected void onPostExecute(Void aVoid) {
// 這裡處理畫面元件(這邊會耗時,所以盡量只處理簡單的畫面資料
    }
}

android 上架把log停掉

-dontskipnonpubliclibraryclasses
-dontobfuscate
-forceprocessing
-optimizationpasses 5
-keep class * extends android.app.Activity
-assumenosideeffects class android.util.Log {
public static *** d(…);
public static *** v(…);
}

編輯proguard-rules.pro

buildTypes {
release {
minifyEnabled true
shrinkResources false
proguardFiles getDefaultProguardFile(‘proguard-android-optimize.txt’), ‘proguard-rules.pro’
}
}

確認 build.gradle 裡面的 buildTypes 屬性
1 ... 35 36 37 38 39 ... 58