20201010のMacに関する記事は8件です。

MacでUSBのフォーマットの色々

Mac のディスクユーティリティで利用できるファイル・システム・フォーマット - Apple サポート

MacのディスクユーティリティでWindowsコンピュータ用にディスクをフォーマットする - Apple サポート

Mac のディスクユーティリティで利用できるパーティション方式 - Apple サポート

フォーマット

image.png

WindowsやUbuntuで利用する場合は、MS-DOS(FAT)かExFAT

Apple File System(APFS):

  • macOS 10.13 以降で使用されているファイルシステム。

Mac OS 拡張:

  • macOS 10.12 以前で使用されているファイルシステム。

MS-DOS(FAT)および ExFAT:

  • Windows との互換性があるファイルシステム。

Windows で使用するディスクをフォーマットする場合は、以下の Windows 互換ファイル・システム・フォーマットのいずれかを選択します。

  • MS-DOS(FAT): 32 GB 以下の Windows ボリュームに使用します。

  • exFAT: 32 GB を超える Windows ボリュームに使用します。

つまり、USBのサイズによりフォーマット形式も選択する必要ある。

MS-DOS(FAT)かexFATの二択である。

パーティション方式

image.png

  • GUID パーティションマップ:

    • すべての Intel プロセッサ搭載 Mac コンピュータには、このオプションを選択します。
  • マスター・ブート・レコード

    • MS-DOS(FAT)または exFAT としてフォーマットされる Windows パーティションには、このオプションを選択します。
  • Apple パーティションマップ:

    • 古い PowerPC プロセッサ搭載 Mac との互換性を保つには、このオプションを選択します。

マスターブートレコードを使っておけばよい。

おまけ

コマンドラインでやるならこれ 

ディスク名: disk1s1 = diskNsM
N: デバイス識別子
M: パーティション番号

# device確認
$ diskutil list

/dev/disk0 (internal):
   #:                       TYPE NAME                    SIZE       IDENTIFIER
   0:      GUID_partition_scheme                         251.0 GB   disk0
   1:                        EFI EFI                     314.6 MB   disk0s1
   2:                 Apple_APFS Container disk1         250.7 GB   disk0s2

/dev/disk1 (synthesized):
   #:                       TYPE NAME                    SIZE       IDENTIFIER
   0:      APFS Container Scheme -                      +250.7 GB   disk1
                                 Physical Store disk0s2
   1:                APFS Volume Macintosh HD            191.0 GB   disk1s1
   2:                APFS Volume Preboot                 46.6 MB    disk1s2
   3:                APFS Volume Recovery                510.4 MB   disk1s3
   4:                APFS Volume VM                      3.2 GB     disk1s4

/dev/disk2 (external, physical):
   #:                       TYPE NAME                    SIZE       IDENTIFIER
   0:     FDisk_partition_scheme                        *7.7 GB     disk2
   1:                 DOS_FAT_32 WINDOWS USB             7.7 GB     disk2s1
   2:                 DOS_FAT_32 UEFI_NTFS               524.3 KB   disk2s2

# ディスクの消去. デバイス識別子を指定
$ diskutil eraseDisk MS-DOS UNTITLED /dev/disk2

MacOSX上でISOファイルからインストールUSBディスクを作る - re:inventing the wheel

# 焼き込み
$ sudo dd if=Win10_2004_Japanese_x64.iso of=/dev/rdisk2 bs=1m

* ~は使えない。フルパスか相対パスで書く。

まとめ

毎回忘れるのでメモ。

  • 32GB以下の場合: MS-DOS(FAT)
  • 32GB以上のUSBの場合: exFAT

  • 方式は常に:マスターブートレコード

以上

  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

たぶん動くから!Docker でイメージを作成して共有してみよう!

はじめに

この記事では Docker で簡単なコンテナイメージを作成し、Docker Hub で共有してみるまでを記しています。
初心者の記事ですので間違っていたら指摘等いただけると幸いです。

環境

  • macOS Catalina version 10.15.6
  • Docker version 19.03.13
  • Visual Studio Code version 1.42.1

前提条件

Docker をインストールしていること。
インストールしていない場合は以下のリンクを参考にインストールしてみてください。
たぶん動くから!Docker始めてみよう!

コンテナイメージのビルド

コンテナイメージを作成するためにはコンテナの中身となる Dockerfile を作成する必要があります。
以下のコードを書いて Dockerfile という名前で保存します。

Docekrfile
FROM ubuntu:20.04
CMD ["echo", "hello Docker!!"]

コードの内容はオペレーティングシステムである ubuntu を呼び出し、 hello Docker!! と出力しています。

ターミナルで Dockerfile のディレクトリへ移動し、 docker build コマンドを叩きます。

$ docker build -t hellodoc .

-t オプションはイメージ名を指定できます。
.Dockerfile が配置されているパスを示しています。Dockerfileの配置されたディレクトリでコマンドを打っているので . ですね。

ビルド処理が終わったらコンテナイメージを動かしてみます。

$ docker run hellodoc
hello Docker!!

うまく動きましたね!

ローカルのコンテナイメージ一覧は docker images コマンドで確認できます。

$ docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
hellodoc            latest              32d0a84555ac        2 weeks ago         72.9MB

コンテナイメージの共有

コンテナイメージの動作が確認できたらhello Docker!! と表示されるだけのクソコンテナイメージを Docker Hub で共有してみます。

Docker Hub への登録

Docker Hub は名前からお分かりの通り、Git HubDocker の様なもの(個人的な認識です)で、様々なコンテナイメージが公開されています。

Docker Hub のアカウントを持っていない人は Docker Hub のサインアップページ にアクセスし、サインアップします。

ターミナルから Docker Hub にログインします。

$ docker login -u ■■■■■■■■■
Password: ************
Login Succeeded

■には登録したユーザーアカウントを、*にはパスワードを入力します。

コンテナイメージの共有

コンテナイメージを共有するための形式でビルドします。

docker build -t ■■■■■■■■■/hellodoc:1.0.0 .

共有するためにはイメージ名の命名規則にルールがあります。
* イメージ名の前に自分の Docker Hub アカウント名の配下に配置する。(■の部分を各自のDocker Hubアカウント名に変えてください。)
* イメージ名の後に : とバージョンを記入する。

docker push コマンドでコンテナイメージを登録します。

$ docker push ■■■■■■■■■/hellodoc:1.0.0

処理が終わったら Docker Hub で確認してみましょう。
スクリーンショット 2020-10-10 17.24.17.png
きちんと登録されていますね!

コンテナイメージのダウンロード

登録されたコンテナイメージは docker pull コマンドでローカルにダウンロードできます。

docker pull ■■■■■■■■■/hellodoc:1.0.0
  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

PDF:源泉徴収簿:からCSV(テキスト)とCSV(eTax⑭役員報酬)を作成する

はじめに

簡易版です。

目的1:PDF(源泉徴収簿)に入力した数字をCSV(テキスト)にする。
目的2:CSV(テキスト)からeTax【⑭役員報酬】にする。

会社員の源泉徴収簿ではなく、(現金の受渡あり、年末調整あり)
会社役員の源泉徴収簿なので、(現金の受渡無し、年末調整無し)
PDF(源泉徴収簿)の列:総支給金額
これしか抽出しません。

使い方

csv作成.R

csv作成.R
source( "ファイル定義.R" ) )

FY <- "" # 会計年度(Fiscal Year) 
f <- file.path( FY ,"源泉所得税" ,"h31_03_input.PDF" )

source( "PDF_源泉徴収簿.R" ) 

給料  <- 給料.csv( f )
    給料  # 目検
Write_会計( 給料 ,f ) # 会計ソフトに取り込む

## 勘定科目⑭役員報酬
source( "【⑭役員報酬】.R" )

i14 <- i14.init( 1 )    # 役員給与等の内訳(代表者)の場合
i14[ 1 ,"氏名=" ] <- "社長の高橋"
i14[ 1 ,"住所=" ] <- "東の京都渋谷区渋谷○-○○-○"
i14[ 1 ,"役員給与計=" ] <- sum( 給料[ ,"総支給金額=" ] )
i14[ 1 ,"定期同額給与=" ] <- i14[ 1 ,"役員給与計=" ]

Write_eTax( i14 ,s_i14 ) # 税務ソフト(eTax)に取り込む

ファイル定義.R

ファイル定義.R
# 会計ソフトに反映
Write_会計 <- function( df ,f ) {
    print( gsub( ".PDF" ,".txt" ,f ) )
    write.csv( 
        df 
        ,gsub( ".PDF" ,".txt" ,f )
        ,row.names=F 
#       ,fileEncoding="CP932" 
    )
}
    print( c( "Write_会計()" ,Write_会計 ) )

# 税務ソフト(eTax)に反映
Write_eTax <- function( df ,s ) {

    print( paste0( s, ".csv" ) )
        # df:入力データフレーム型(行列型でも動くと思う)
        #  ↓
        #  s:出力シート名(MSエクセルのあれが必須です)
    write.table(
         df
        ,paste0( s ,".csv" )
        ,quote=F
        ,sep=","
        ,row.names=F
        ,col.names=F
        ,eol="\r\n"
        ,fileEncoding="CP932"
    )
}  
    print( c( "Write_eTax()" ,Write_eTax )  )

源泉徴収簿

2019 平成31年分給与所得・退職所得に対する源泉徴収簿

入力用 ※これを使っています。
https://www.nta.go.jp/taxes/tetsuzuki/shinsei/annai/gensen/pdf/h31_03_input.pdf

手書き用
https://www.nta.go.jp/taxes/tetsuzuki/shinsei/annai/gensen/pdf/h31_03.pdf

2020 令和2年分給与所得・退職所得に対する源泉徴収簿

入力用(PDF/822KB)※今年は、これを使う
https://www.nta.go.jp/taxes/tetsuzuki/shinsei/annai/gensen/pdf/r02_03_input.pdf

(PDF/727KB) 手書き前提
https://www.nta.go.jp/taxes/tetsuzuki/shinsei/annai/gensen/pdf/r2bun_03.pdf

2021 令和3年分給与所得・退職所得に対する源泉徴収簿

 入力用(PDF/467KB)※来年は、これを使う
https://www.nta.go.jp/taxes/tetsuzuki/shinsei/annai/gensen/pdf/r02_03_input.pdf

(PDF/423KB)手書き前提
https://www.nta.go.jp/taxes/tetsuzuki/shinsei/annai/gensen/pdf/r2bun_03.pdf

[手続名]給与所得・退職所得に対する源泉徴収簿の作成

https://www.nta.go.jp/taxes/tetsuzuki/shinsei/annai/gensen/annai/1648_03.htm

想定PDF

2019 平成31年分給与所得・退職所得に対する源泉徴収簿

左半分:給料・手当等
列1 列2 列3 列4 列5 列6 列7 列8 列9 列10
列名 y 月区分= 支給月= 日= 総支給金額= 社会保険料等の控除額= 扶養親族等の数= 算出税額= 年末調整による過不足税= 差引徴収税額=
→x 横の位置 76〜78 153 352
↓y 自動取得 1月
自動取得 2月
自動取得
自動取得 12月

※賞与等は分析しなかった。

右半分:扶養控除等の申告、年末調整などか?

※分析しなかった。

PDF_源泉徴収簿.R

PDF_源泉徴収簿.R
# CSV作成
    # PDFをインポートするため
library( pdftools ) # install.packages( 'pdftools'  )

#   pdf_info(   f   )
df <-   pdf_data(   f   )

給料.init <- function() {
    給料 <- data.frame( matrix( NA ,0 ,10 ) )     # 列数
    colnames( 給料 ) <- c(
        "月区分="        # 列1
        ,"y"            # 列1-2
        ,"支給月="       # 列3
        ,"日="         # 列4
        ,"総支給金額="     # 列5
        ,"社会保険料等の控除額="  # 列6
        ,"扶養親族等の数="   # 列7
        ,"算出税額="        # 列8
        ,"年末調整による過不足税="   # 列9
        ,"差引徴収税額="      # 列10
    )
    print( sapply( 給料 ,mode ) )
        # 列数
    給料[ 1:12,"月区分=" ] <- c( 1: 12 ) # 各列を初期化
    給料[ ,2:10 ] <- 0
    給料[ ,"日=" ] <- 20
return( 給料 )
}
    print( c( "給料.init()" ,給料.init )  )

給料.text <- function( df ,x ,y ,e = -9 ) {
    # e:誤差
    w <- df[[1]]  [ 
           df[[1]]$"x" == x  &
           df[[1]]$"y" >= y + e & #上段だとマイナス
           df[[1]]$"y" <= y  
        , ] $"text"
    if( length( w ) == 0 ) return( 0 )
return( as.integer( gsub( "," ,"" ,w ) ) )
}
    print( c( "給料.text()" ,給料.text )  )

給料.csv <- function( f ) {
    print( f )
    給料 <- 給料.init()

    月区分 <-    df[[1]] [ df[[1]]$"x" >= 76 & df[[1]]$"x" <= 78  ,  ]   # 月区分 (1-12) 
    o <-    order( as.integer( 月区分$"text" )  )
    給料[ ,"y" ] <- 月区分[ o, ]$y # 月別のy(縦位置)

    給料[ ,"総支給金額="] <- sapply( 給料[ ,"y"] ,function( y ){ 給料.text( df ,153 ,y ) }  ) 
    給料[ ,"算出税額="] <- sapply( 給料[ ,"y"] ,function( y ){ 給料.text( df ,352 ,y ) }  )

# Write_会計( 給料 ,f_給料 )
return( 給料 )
}
    print( c( "給料.csv()" ,給料.csv )  )

CSVスペック

○ レコードの内容及び留意事項(2-14)
【勘定科目内訳明細書(14役員給与等の内訳書)】
(平成31年4月1日以後終了事業年度分)
https://www.e-tax.nta.go.jp/hojin/gimuka/csv_jyoho1/2/HOI141.pdf

勘定科目内訳明細書の標準フォーム等
(平成31年4月1日以後終了事業年度分)
https://www.e-tax.nta.go.jp/hojin/gimuka/csv_jyoho2_meisai_31.htm

【⑭役員報酬】.R

【⑭役員報酬】.R
s_i14 <- "HOI141_5.0_⑭役員報酬" # 2020(令和2年)
    print( c( "s_i14" ,s_i14 )  )

i14.init <- function( n ) { # n:フォーマット区分( 14-n )
        # 列数 
    i14 <- data.frame( matrix( NA ,0 ,15 ) )
        # 列名
    colnames( i14 ) <- c( 
      "フォーマット区分=" # 14-1 14-2 
      ,"行区分="
      ,"役職名="
      ,"担当業務="
      ,"氏名="
      ,"代表者との関係="
      ,"住所="
      ,"常勤・非常勤の別="
      ,"役員給与計="
        ,"使用人職務分="      # 左の内訳.
            ,"定期同額給与="          # 使用人職務分以外.
            ,"事前確定届出給与="    # 使用人職務分以外.
            ,"業績連動給与="          # 使用人職務分以外.
            ,"その他="                       # 使用人職務分以外.
      ,"退職給与="
     ) 
    # 行列、ひな型
    switch( n 
    , "1" = {       # 役員給与等の内訳(代表者)の場合
        i14[ 1 ,"フォーマット区分=" ] <- "14-1"
        i14[ 1 ,"行区分=" ] <- 0
        i14[ 1 ,"役職名=" ] <- "01"              # 代表取締役 
        i14[ 1 ,"代表者との関係=" ] <- "01"  # 本人  
        i14[ 1 ,"常勤・非常勤の別=" ] <- 1      # 常勤の場合 
      }
    , "2" = {   # 役員給与等の内訳(代表者以外)の場合 
        i14[ 1 ,"フォーマット区分="] <- "14-2"
        i14[ 1 ,"行区分=" ] <- 0
      }
    , "3" = { # 人件費の内訳の場合 
            # 列数 
        i14 <- data.frame( matrix(  NA ,0 ,10 ) )
            # 列名
        colnames( i14 ) <- c( 
          "フォーマット区分=" # 14-3 
          ,"行区分="
          ,"役員給与.総額="
          ,"役員給与.総額のうち代表者及びその家族分="

          ,"従業員給料手当.総額="
          ,"従業員給料手当.総額のうち代表者及びその家族分="

          ,"従業員賃金手当.総額="
          ,"従業員賃金手当.総額のうち代表者及びその家族分="

          ,"計.総額="
          ,"計.総額のうち代表者及びその家族分="
         ) 
        i14[ 1 ,"フォーマット区分="] <- "14-3"
      }
    )
return( i14 )
}
    print( c( "i14.init()" ,i14.init )  )

感謝した記事

apply関数

Rのlapply関数に関するメモ
https://onoshima.github.io/r/laaply/

  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

Macでオススメするマージツール

マージツールはWinMerge一択で考えていたのですが、Windowsでした使えないですね。。
そこでMacのマージツールは何がいい? と聞かれると困ることありませんか?そこで筆者がMacで使用している無料マージツールのオススメと特徴をそれぞれ解説していきます。

CompareMerge

スクリーンショット 2020-07-19 1.24.28.png
■ インストール
・有料版(¥1,720)
https://apps.apple.com/jp/app/comparemerge/id478570084?mt=12
・無料版  ※200ファイルまでしか同時に比較できない
https://apps.apple.com/jp/app/comparemerge-lite/id1459748650?mt=12

■ 概要
Macのマージツールの中でWinMergeに一番近いと思います。
オプションで細かいところまで変更できるので自分好みの設定にすることもできます。
有料版を購入する価値は十分にあるツールなので、是非購入をオススメします。

■ 使い方
① 比較方法
「左側」と「右側」にパスを入力かD&Dしたら自動でパスが設定されるので「比較」ボタンを押下
1.png

② 比較結果
赤色がファイル差異がある箇所で、オレンジがファイル有無の差異です。
緑丸で囲っている箇所を選択すると、「階層表示」「左右比較表示」になり、画像のように表示されます。
2.png

③ ファイル差異表示
差異表示の色は設定から細かく変更できるので、自分好みにカスタマイズできます。
3.png

DiffMerge

スクリーンショット 2020-07-19 1.57.07.png
■ インストール
https://sourcegear.com/diffmerge/downloads.php

■ 概要

SnailSVNの導入手順で紹介した、筆者が愛用しているSnailSVNのマージツールとしても対応しているので、SnailSVNを使用している方は導入をオススメします。
他に理由がなければ「CompareMerge」で十分だとは思います。
フォルダ比較時のツリー表示は見辛いですが、ファイル差分表示はとても見やすいです。

■ 使い方
① 比較方法
左上のエクスプローラーアイコンを押下 または 画面に比較対象のフォルダをD&Dして、
左側と右側に比較するフォルダ・ファイルのパスを入力します。
スクリーンショット 2020-07-19 2.01.33.png

② 比較結果
赤文字がファイル差異がある箇所で、青文字がファイル有無の比較結果です。
赤枠で囲った箇所のように設定すると画像のような比較結果になります。
ツリーが一直線なので、どのフォルダにどのファイルがあるか見辛いのが残念。
スクリーンショット 2020-07-19 2.01.49のコピー.png

③ ファイル差異表示
差異表示の色は設定から細かく変更できるので、自分好みにカスタマイズできます。
個人的にはDiffMergeの差異表示が好きです。
スクリーンショット 2020-07-19 2.04.54.png

FileMerge

Xcodeに付いてくるマージツールです。
スクリーンショット 2020-07-19 2.31.12.png

■ Xcodeインストール
https://apps.apple.com/jp/app/xcode/id497799835?mt=12

・FileMergeのありか
/Applications/Xcode.app/Contents/Applications/FileMerge.app

■ 概要
Xcodeに付属しているため、サクッと差分を確認したい時に使用できます。
ファイル差分表示、フォルダ比較時のツリー表示は少し見辛い印象。
フォルダ比較時は左右での差分が確認できないため、フォルダ比較をしたい場合はオススメしません。

■ 使い方
① 比較方法
各マージツール同様に、ファルダまでのパスを入力 or フォルダをD&D して「Compare」ボタンを押下。
スクリーンショット 2020-07-19 9.17.29.png

② 比較結果
左右で表示ができないため、一目では差分がわかりにくいですね。
スクリーンショット 2020-07-19 9.17.36.png

指定のファイルを選択すると、下の方にステータスが確認できるので、ここで確認が必要です。
スクリーンショット 2020-07-19 9.19.54のコピー.png

③ ファイル差異表示
差異表示の色は設定から変更できます。
スクリーンショット 2020-07-19 9.17.44.png

最後に

「CompareMerge」が一番性能が良くオススメのマージツールです。
SnailSVNで差分を確認したい場合は「DiffMerge」を導入するのもありです。
そこまでマージツールを使用しないし、ファイルの差分のみ見たいなーという方は「FileMerge」で良いと思います。

  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

MacBookの設定

■ はじめに

皆さんが常日頃使っている、MacBookの設定について記事にしました。
この記事で得られることは以下の通りです。

・MacBookの設定を最適化する事で、作業効率が良くなり生産性が上がる。

■ トラックパッドの設定

スクリーンショット 2020-10-10 9.03.19.png

・タップでクリック(1本指でタップ)にチェックを入れる

→操作時間の短縮・効率化

・軌跡の速さを速いに設定する

→軌跡を高速にする事で、操作時間を短縮し疲労減少にも繋がる

■ Dockの設定

スクリーンショット 2020-10-10 9.24.35.png

・サイズ(Dockアイコンの大きさ)

→お好みですが、小さくして操作の機能性をとるか、大きくすることで正確性をとるかの違いだと思います

・ウィンドウをしまうときのエフェクトをスケールエフェクトにする

→ジニーエフェクトの場合
ジニーエフェクト.gif

→スケールエフェクトの場合
スケールエフェクト.gif

・Dockを自動的に表示/非表示にチェックを入れる

→Dockが表示されている分、常に画面領域を取られているので、非表示にする事で画面を広く使えます。

■ ディスプレイの設定

スクリーンショット 2020-10-10 10.13.27.png

・「ディスプレイ」から「解像度:変更」をクリックし、「スペースを拡大」をクリックする

→ディスプレイのデフォルトの場合

スクリーンショット 2020-10-10 10.23.25.png

→スペースを拡大の場合
スクリーンショット 2020-10-10 10.22.06.png

・「Night Shift」の「スケジュール」を「カスタム」にし、開始を「0:00」、終了を「23:59」にする

→Night Shiftを常にONにし、目に優しく。

スクリーンショット 2020-10-10 14.53.18.png

■ アクセシビリティの設定

スクリーンショット 2020-10-10 15.02.34.png

・「アクセシビリティ」から「ポインタコントロール」、「トラックパッドオプション」をクリックし、スクロールの速さを「速い」に設定する

→Webページ等でスクロールする際の速度を速くする事で、労力を減らし、目的の情報に素早く辿り着くことが期待できます

  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

Docker Desktop for Mac をHomebrewでインストールする

目的

  • HomebrewでDocker Desktop for Macをインストールする方法をまとめる

前提条件

  • Homebrewが使える状態になっていること。($ brewコマンドが実行できること)

詳細

  1. 下記コマンドを実行してHomebrewを最新状態にする。

    $ brew update
    
  2. 下記コマンドを実行してDockerをインストールする。

    $ brew install docker
    $ brew cask install docker
    
  3. 下記コマンドを実行してインストールしたファイルを開く。

    $ open /Applications/Docker.app
    
  4. ユーザパスワードを聞かれたら入力する。

  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

Mac OSのコマンドラインでアプリを自在に開く方法とそのユースケース

バッチファイル .command にこのコマンドを記述するとお望みの動作が簡単に実現できます。
スクレイピングツールと一緒にバッチファイルに記述してよく使っているので激しくおすすめです。

アプリを自在に開くコマンドの指定方法

-aの隣にアプリ名を入れます。その横にはさらに起動オプションもつけることが可能です!!

open -a "Google Chrome" https:/qiita.com

何が便利なの?

例えば、私は以下のような文脈で最近使いました。

1.大学のポータルサイトから授業ページをスクレイピングするopu-scraping.jsを起動する
2.1.のプログラムにより受講している全ての授業ページのテキストがローカルに保存される
3.それぞれの授業ページをGitHubにPushする
4.ChromeでGitHubのリポジトリの変更履歴を開く

以上の流れを下のようにバッチファイル (.command)に記述しました

opu-watchdog.command
#!/bin/bash
cd
cd dev/opu-lss-watchdog
node opu-scraping.js
git add .
git commit -m "automatically updated"
git push -u origin master
open -a "Google Chrome" https://github.com/kantasv/opu-lss-watchdog/tree/master/logs

これをMacのDockerにショートカットを置いておき、更新確認したいときにワンクリックで所望の動作が実現できるようになりました。
スクリーンショット 2020-10-10 1.22.51.png

デモ動画

上のバッチファイルの実際のユースケースのデモです
コマンドから自由にアプリが開けることの応用性に気づいてもらえたら幸いです。
「府大の支援システムをスクレイピングし差分をGitHubで確認する」
https://www.youtube.com/watch?v=6aHnijjcSaQ&feature=youtu.be

  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

たぶん動くから!Docker始めてみよう!

はじめに

この記事はDockerのインストール時のメモです。
Dockerのインストール方法から簡単なDockerの操作確認までを記します。

インストール環境

macOS Catalina
バージョン 10.15.6

インストール手順

  1. Dockerの公式サイトからダウンロードする。 公式サイトで [Get Started] を押下。 スクリーンショット 2020-10-09 23.25.21.png
  2. Docker Desktop の [Download for Mac] を押下。 スクリーンショット 2020-10-09 23.26.00.png
  3. ダウンロードした Docker.dmg を開き、Docker.appApplications にドラック&ドロップする。 スクリーンショット 2020-10-09 23.56.38.png
  4. アプリケーションフォルダから Docker.app をダブルクリックして起動する。 この時、認証の設定等聞かれることがあるので聞かれた通りに答える。
  5. メニューバーにクジラのマークの Docker のアイコンが出たらインストール完了! スクリーンショット 2020-10-10 0.06.10.png

コンテナの操作

Docker はターミナルで操作し、全て docker コマンドを用いる。

コンテナの起動と確認

Docker の操作確認のために Docker Hub ( Git Hub の Docker版 ) で公開されている webサーバーである nginx コンテナを起動する。
コンテナの起動には docker run コマンドを用いる。

$ docker run nginx:1.19.3

最初はローカルにコンテナイメージがなかったため、イメージを取得し、以下のように表示される。

Unable to find image 'nginx:1.19.3' locally
1.19.3: Pulling from library/nginx
d121f8d1c412: Pull complete 
66a200539fd6: Pull complete 
e9738820db15: Pull complete 
d74ea5811e8a: Pull complete 
ffdacbba6928: Pull complete 
Digest: sha256:fc66cdef5ca33809823182c9c5d72ea86fd2cef7713cf3363e1a0b12a5d77500
Status: Downloaded newer image for nginx:1.19.3

Docker を起動したまま別のターミナルから docker ps コマンドで nginx コンテナの起動を確認する。

$ docker ps
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS               NAMES
51d72c08c122        nginx:1.19.3        "/docker-entrypoint.…"   3 minutes ago       Up 3 minutes        80/tcp              gracious_lalande

nginx のバージョン1.19.3が 51d72c08c122 というIDで起動していることが確認できる。

コンテナの停止

docker ps コマンドで取得した CONTAINER ID を指定して実行する。

$ docker stop 51d72c08c122

docker ps コマンドで確認する。

CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS               NAMES

起動中のコンテナIDがないことが確認できる。

ちなみに docker start コマンドに先ほどのコンテナIDを指定すれば、同じコンテナを再び起動できる。

$ docker start 51d72c08c122

コンテナの削除

コンテナの削除にはコンテナを停止後、コンテナIDを指定して docker rm コマンドを用いる。

$ docker rm 51d72c08c122

処理後、docker start コマンドに先ほどのコンテナIDを指定し起動してみると、

$ docker start 51d72c08c122
error during connect: Post http://%2Fvar%2Frun%2Fdocker.sock/v1.40/containers/51d72c08c122/start: EOF
Error: failed to start containers: 51d72c08c122

該当のコンテナIDの起動に失敗したというエラーが返ってきて、コンテナが削除されていることが確認できる。

イメージ一覧

docker images コマンドでローカルのホストにあるイメージ一覧を表示することができる。

$ docker images
REPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
nginx               1.19.3              992e3b7be046        3 days ago          133MB

イメージ削除

$ docker rmi nginx:1.19.3

コンテナでイメージを作成・共有

次はコンテナでイメージを作成・共有してみます。
たぶん動くから!Docker でイメージを作成して共有してみよう!

  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む