DevOps

Heroku ClearDB database (MySQL) 連線方式 (sequel pro) 筆記

Heroku 的 Add on 擴充功能,提供了資料庫的項目

在 MySQL 會選擇 “ClearDB MySQL :: Database” 這個 AddOn

這項服務是免費的,但是必須要先填寫信用卡資料,才能完成啟用

啟用後,就能在 local cli 登入 heroku

接著執行

heroku config | grep CLEARDB_DATABASE_URL

或者

Continue Reading

Swoole 與傳統 PHP-FPM 差異

在swoole 官方介紹到運作原理時,就有針對 swoole 運作方式與 PHP-FPM 的差異進行比較 傳統 PHP-FPM 是基於 PHP Server 來解析 而 Swoole 則是用 C 所編譯的 PHP 擴充,可以直接透過 CLI mode 與 server 溝通 這一點差異就讓 swoole 能做到傳統 php model 無法達成的事情

Continue Reading

netstat 指令小記

在 Linux 建構服務時,通常遇到問題除了查詢log 之外,大多數還會確認連線是否正常,port是否有打通之類 Linux 命令列的 netstat 可以查詢到各種網路相關訊息 當我們要檢測 socket、TCP、UDP、IP、ethernet等各種連線,都可以用它來查詢 支援一般權限,以及 IPv4, IPv6 這裡筆記方式記錄一些用法 搭配 watch 監控現有連線 watch -d -n0 "netstat | grep ESTABLISHED" 以下可能是 CentOS的環境使用: 列出完整的 URL 位址 netstat -tup -W 這個指令可以將所有連線的 IP 位址列出來,並依照每個 IP 位址的連線數排序

Continue Reading

wrk - 輕巧 http benchmark 工具,處理簡易的HTTP 性能測試

wrk 是用C語言寫的一套http benchmark 工具

可以幫助我們處理簡易的HTTP 性能測試

Continue Reading

Github 設定 SSH Deploy key 流程教學

透過設定 Deploy keys (SSH Key) 可以避免掉每次 push 都要輸入帳密的流程

設定的步驟如下:

啟用本地 Cli 命令列視窗

建立 ssh keygen

Continue Reading

如何關閉mac預設 apache 啟動執行

關閉MAC本地 apache MAC系統會自帶 apache, 在這裡要先將它關閉 暫停apache sudo apachectl -k stop 關閉開機啟動 sudo launchctl unload -w /System/Library/LaunchDaemons/org.apache.httpd.plist

Continue Reading

Laravel - Sublime Text3 搭配 SFTP 連線管理 Homestead

安裝 sublime text sftp shift+command+p > Package Control:Install Package > sftp 開啟設定檔 File>SFTP/FTP/Setup Server 這時會開啟一個json格式的設定檔案 查看 vagant ssh-config 首先,先查看vagant ssh-config $ vagrant ssh-config Host homestead-7 HostName 127.0.0.1 User vagrant Port 2222 UserKnownHostsFile /dev/null StrictHostKeyChecking no PasswordAuthentication no IdentityFile /Users/liaoxiangru/Homestead/.

Continue Reading

Laravel - Homestead

Laravel Homestead 介紹

Laravel 為了讓PHP開發整體體驗都能完善,在local開發的環境設定也提供了相關解決方案

也就是這裡要介紹的 Homestead

Laravel Homestead 是官方所維護的 Vagrant box pre-package

讓你可以直接透過這個環境開發,而不必再獨立安裝PHP、Web server…等軟體

並且不必擔心忘記系統設定,因為 Vagrant boxes 是一次性設定安裝完畢,

如果在安裝流程有發現錯誤,隨時都可以重新安裝環境,並且只需要幾分鐘的時間就能完成

Continue Reading

Docker - Get Start Part 3. Services

這裡記錄 Services 實作流程 在之前,要先透過 part2 建立了 image gordon/get-started:part2 在這裡,建立 docker-compose.yml ,透過 image 來產生五個重複的 container version: "3" services: web: # replace username/repo:tag with your name and image details image: gordon/get-started:part2 deploy: replicas: 5 resources: limits: cpus: "0.

Continue Reading

Docker - Get Start Part 2. Containers

這裡記錄 Containers 實作流程 在這裡按照下方流程就能快速建立出一個 python demo web 預計將專案放置在 docker_project/get_started/ 建立檔案: Dockerfile # Use an official Python runtime as a parent image FROM python:2.7-slim # Set the working directory to /app WORKDIR /app # Copy the current directory contents into the container at /app ADD .

Continue Reading

Docker - 基本指令紀錄

Docker 基本操作常用的指令: docker build -t friendlyhello . # Create image using this directory's Dockerfile docker run -p 4000:80 friendlyhello # Run "friendlyname" mapping port 4000 to 80 docker run -d -p 4000:80 friendlyhello # Same thing, but in detached mode docker container ls # List all running containers docker container ls -a # List all containers, even those not running docker container stop <hash> # Gracefully stop the specified container docker container kill <hash> # Force shutdown of the specified container docker container rm <hash> # Remove specified container from this machine docker container rm $(docker container ls -a -q) # Remove all containers docker image ls -a # List all images on this machine docker image rm <image id> # Remove specified image from this machine docker image rm $(docker image ls -a -q) # Remove all images from this machine docker login # Log in this CLI session using your Docker credentials docker tag <image> username/repository:tag # Tag <image> for upload to registry docker push username/repository:tag # Upload tagged image to registry docker run username/repository:tag # Run image from a registry

Continue Reading

Docker - TMPFS

Docker Mount 下圖清楚了說明Docker host的 Volume with bind mounts 以及tmpfs mount 機制 這裡針對 tmpfs 部分進行介紹: tmpfs mount tmpfs mounts 只會儲存於host system的記憶體,不會寫入 host system的 filesystem。 因此,tmpfs mount 資料不會保存在硬碟、Docker host或 container 裡,只會存在container 執行的期間

Continue Reading

Docker - Bind Mounts

Docker Mount 下圖清楚了說明Docker host的 Volume with bind mounts 以及tmpfs mount 機制 這裡針對 Bind Mounts 部分進行介紹: Bind Mounts Bind mounts 在早期 Docker 版本就已經存在,相對於 volumes ,使用 Bind mounts 有一些功能限制: 當 container 在host machine 中的檔案或目錄使用 bind mount

Continue Reading

Docker - Volumes 介紹

Docker Mount

下圖清楚了說明Docker host的 Volume with bind mounts 以及tmpfs mount 機制

這裡針對 Volumes 部分進行介紹:

Continue Reading

Docker - 資料管理簡介

在 Docker 管理資料

在 container 所建立的檔案,預設都會存放在可容器寫入層(writable container layer)

這表示:

  • 當container不沒有運行時,資料就會跟著消失
  • container中的數據很難從外部取得
  • 可寫入容器層的資料,與container高度耦合,很難將資料搬移到其他地方
  • 需要透過 storage driver 來管理filesystem

當你建立一個新的 container,會同時在最上層建立一個新的可寫入層(writable layer),也稱為 container layer。

在 container內所有的改變都會在這裡面,例如: 建立新檔案,編輯檔案,刪除檔案,都會寫入這個容器可寫入層。

Continue Reading

Laravel Migrate-Generate

安裝擴充

composer require --dev "xethron/migrations-generator"

檢查laravel 版本

php artisan --version

Continue Reading

Docker - Compose 介紹 (上)

Docker-Compose 是一個可以用來定義且執行多個 Container 應用程式的工具

可以很簡單的透過 Compose 的 yaml 來設定你的container應用程式

並且透過一個指令,就可以建立及啟動所有yaml設定的應用程式

Compose 可以在產品、階段產品、開發或測試項目使用

在使用上大致可以區分為三個過程:

Continue Reading

Docker - 安裝 MySQL

MySQL 是一個廣泛被使用,開源的關聯式資料庫管理系統( relational database management system, RDBMS)

目前的MySQL執行效能不斷提升,可靠且易於使用,

因此經常被作為網路應用程式開發資料庫的首選.

其中包括 Facebook, Twitter, YouTube, Yahoo 等公司都有使用。

詳細說明可參考官網: www.mysql.com.

這裡將說明如何在 Docker 安裝即執行 MySQL 環境

Continue Reading

Docker - 執行 Nginx Webserver

執行 Nginx Container -d 表示在背景( Detached )執行,Docker 預設前景( foreground )執行 -p 表示將本機 8080 port 的來源轉發到 container 的 80 port –name 表示為 container 的名稱 –rm 表示當 exit container 時,會移除 container( incompatible with -d )

Continue Reading

Docker - MAC安裝與執行 Hello World

Docker 在 Mac 環境可以直接透過 Install Docker for Mac 來安裝

前往 Docker for Mac 下載 Docker.dmg 執行安裝

檢查版本

透過下列方式來檢查 docker 版本,確定安裝完畢

docker --version

docker-compose --version

docker-machine --version

Continue Reading