- 投稿日:2020-11-20T21:28:14+09:00
【AWS】CodeCommitにEC2とwindows端末の両方からgit pushしてみた
はじめに
最近、gitを使い始めたのですが作業環境によってgit pushのやり方が異なったのでまとめていきます。
今回は以下の2通りを紹介します。
(1)EC2からCodeCommitにgit clone → git pushを実施する
(2)windows端末からCodeCommitにgit clone → git pushを実施する1-1.認証情報の作成
(1)サービス「IAM」→ アクセス管理の中ある「ユーザー」を選択します。
(2)CodeCommitへの認証情報を作成したいユーザを選択します。
※作成されていない場合は作成してください。
(3)「認証情報」タブの「AWS CodeCommit の HTTPS Git 認証情報」欄にある、
「認証情報を生成」を選択します。
(4)認証情報が生成されるので、「証明書のダウンロード」を選択すると認証情報が書かれた
csvファイルがダウンロードされます。1-2.CodeCommit リポジトリを作成
(1)サービス「CodeCommit」→「リポジトリを作成」を選択します。
(2)「リポジトリ名」を入力し(今回はgit_test)、「作成」を選択します。
(3)右上の「URLのクローン」タブ → 「HTTPSのクローン」を選択し、クローン用のURLをコピーして
テキストなどにメモしておきましょう。URLは「https://**/git_test(リポジトリ名)」になるはずです。
2-1.EC2でgit cloneする
(1)gitをインストールし、ディレクトリを作成します。
(2)git用のディレクトリでgit cloneをします。sudo yum install git mkdir git cd git git clone https://**/git_test(リポジトリ名)(3)インストールしたcsvファイルに書いてある認証情報(UsernameとPassword)を入力すると以下のように
cloneされていることが確認できます。
※Passwordはコピペしても見えません[ec2-user@ip-<ip-addr> git]$ ll total 0 drwxrwxr-x 5 ec2-user ec2-user 187 Nov 30 11:52 git_test2-2.EC2でgit pushする
cloneしたディレクトリから適当なファイル(ec2_test.txt)を作成してgit pushしてみましょう。
git pushの際は認証情報を入力してください。cd git_test # cloneしたディレクトリに移動 echo "test" > ec2_test.txt # 適当なファイルを作成 git add . git commit -m "ec2_commit" git push origin masterCodeCommitで確認すると想定通りファイルが作成されていることが確認できます。
3-1.windows端末でgit cloneする
(1)windows端末にGit for WindowsとTortoiseGitをインストールします。
インストールでは以下の記事を参考にさせて頂きました。
TortoiseGitの導入とGitLabへの接続方法
(2)適当な場所にgit用のディレクトリを作成します。
(3)作成したディレクトリをエクスプローラで開き、右クリック→「Git クローン(複製)」を選択します。
(4)以下のような画面が出てくるので、URLの欄にクローン用のURLを入力して「OK」を選択します。
(5)認証情報の入力を求められるので入力します。
(6)成功すると以下のようにディレクトリが作成されます。
3-2.windows端末でgit pushする
cloneしたディレクトリから適当なファイル(windows_test.txt)を作成してgit pushしてみましょう。
(1)適当なファイル(windows_test.txt)を作成します。
※この作業はEC2で作業した後に行っているので、ディレクトリにはEC2で作成したファイル(ec2_test.txt)もあります。
(2)エクスプローラ上で右クリック→「Git コミット(C)…」を選択します。
(3)以下の画面でメッセージを入れる & 作成したファイルにチェックをつけて、
右下の「コミット」を選択します。
(4)エクスプローラ上で右クリック→「TortoiseGit」→「プッシュ」を選択します。
(5)確認画面でそのまま「OK」を選択します。
(6)CodeCommitで確認すると想定通りファイルが作成されていることが確認できます。
まとめ
今回は2通りの方法を紹介しましたが、ファイルの編集や他のアプリケーションとの連携の
しやすさを考えるとEC2にgit cloneする方が良いのではないかと考えています。
- 投稿日:2020-11-20T12:47:32+09:00
OSのアップデート後にGitコマンドを打ったらエラーが出た!(自分用忘備録)
- 投稿日:2020-11-20T12:02:59+09:00
一度削除してしまったgit submoduleを再度追加する
概要
ローカルリポジトリに追加しリモートにpushしたリポジトリ内のgit submoduleを諸事情で一度削除したが、再度追加しリモートにpushし直したいということがあった。
とりあえず、git submodule add
で追加されたローカル上の.gitmodulesを消して、再度同コマンドで追加しようとしたら以下のようになった。A git directory for 'リポジトリ名' is found locally with remote(s): s origin リポジトリURL If you want to reuse this local git directory instead of cloning again from リポジトリURL use the '--force' option. If the local git directory is not the correct repo or you are unsure what this means choose another name with the '--name' option.
解決方法
- .gitフォルダ内のmodulesフォルダを削除する
- 同じく.gitフォルダ内のconfigファイル内の[submodule]の行を消す
- 再度
git submodule add
で追加し、コミット、pushする無事追加されました!
- 投稿日:2020-11-20T10:54:44+09:00
Org-mode based development
Gitでこまめにcommitした方がいいのがわかってはいるけれど、
うまくcommitできないというかいちいちどうメッセージを打てばいいか分からなくなる
一方で、研究資料含めてorg-mode(+beamer export)でまとめる癖がついていたので、
README.mdをorg-modeで書いてみることに。
そういえば実験結果も一緒にcommitして仕舞えば後で見返せるな...研究室サーバーにtrampでログインしておいて、
README.orgファイルに次の実装計画などを追加していく。
プログラム開発用にはVSCodeを使っているので(以前はPyCharmだったけど、機能が多すぎて重たいと感じていたので移行した)
ある程度まで書いたりTODOのタスクが一つ終了するたびにcommitして、
尚且つREADME.orgに記載していたタスクをsubtreeごとコピペしてcommit(magit)する
そうすると、メモをgit logに関連して見直せるし便利。
また、文章をいちいち書くのめんどくさくてcommitしていなかったという問題も解消される。プログラムコードとして残る変更はいいんだけど、
環境構築系の後から見直してこれどうしたんだっけみたいなものも、
org-modeの方に参考にしたサイトとかのメモを取っておけば自然と問題が解消されるし、
README.org ファイルを変更したことを検出してくれるから、
自然とプロジェクトの進捗の段階に応じてcommitできる。...magit便利...
Future Work
Org-modeのsubtreeみたいに、編集履歴というかcommitのlogもツリー上にする方法ないのかな...
いちいちbranch作るのは面倒だし...
logで見返すときだけでいいんだろうけど
- 投稿日:2020-11-20T08:52:16+09:00
gitでHTTPSを使ったときの認証情報を保存する方法
git config --global credential.helper store
- 投稿日:2020-11-20T08:22:11+09:00
【Git】.DS_Storeを無視する
マシンを変えてから、設定してなく、煩わしかった。
備忘録。自分のマシンのgit で.DS_Storeを無視する。
・ファイル作成
$ touch .gitignore_global・無視したいファイルを記述
$ vi .gitignore_globaliして、「.DS_Store」書いてescして、:wqして、Enter
・作成したファイルを適用
$ git config --global core.excludesfile ~/.gitignore_global
- そのリポジトリだけで良いなら、「--local」
・確認
下記に、適用したファイルが入っていれば完了
core.excludesfile=
$ git config --global --list ~省略~ core.excludesfile=/Users/XXXX/.gitignore_globalあとがき
あと回さないで、やっときゃよかった〜〜!
素敵なGit生活をー!!
- 投稿日:2020-11-20T02:18:02+09:00
コンテナとGithubを利用したWebシステム開発の効率化
はじめに
システムやアプリの開発をする際、Github上にリポジトリを作ってそこでソース管理することが多いが、実行環境がこれらのソースを直接的に見ていなかったり、開発環境はローカルで立てたりするため、手元では動いたが本番環境にアップロードすると失敗といった事が頻繁に起こっていた。
今回、ソースコードをGithub上に置き、そのソースコードを参照する様なWebサーバーコンテナができないかを試してみたので、本記事ではその内容をまとめる。実行環境
【Docker導入環境】
・Ubuntu20.04 LTS(GCP上)
・docker19.03.13【コンテナ環境】
・Image Ubuntu:20.04
・Apache2.4.41試してみる事
docker上に2つのWebサーバー用コンテナを作成して、1つを本番用、もう1つを開発用とする。
本番用のコンテナはビルドする度に、Githubリポジトリのmain
ブランチからアプリコードをCloneする様にし、
開発用のコンテナはdev
ブランチからアプリコードをCloneするようにDockerfile
を作成してみる。手順
1.環境準備
2.Github上にリポジトリを作成
3.Apacheを起動させるまでのDockerfileを作成
4.Github上のコードを取得するDockerfileに修正1.環境の準備
GCP上にVMインスタンスを作成
※イメージはUbuntu20.4 LTSdockerのインストール
※【Dockerコンテナ内のUbuntuではsystemctlは使えない】の手順1を参考に。2.Github上にリポジトリを作成
Github上で以下を実施する。
■Public用のリポジトリを作成
※手順4のDockerfileの内容は、Publicリポジトリからクローンすることを前提としている。■作成したリポジトリ内の直下に『App』フォルダを作成
■『App』フォルダ内にindex.htmlを作成
※中身は適当に記載■開発用のブランチを切る
※手順4ではブランチ名はmain(本番用)
とdev(開発用)
を前提としている。3.Apacheを起動させるまでのDockerfileを作成
DockerFile を作成する
$ sudo nano ./Dockerfile※最初『DockerFile』というファイルを作成したが、"F" が大文字だったためビルドに失敗した。
Dockerfile# ベースイメージの取得 FROM ubuntu:20.04 # メタデータの登録 LABEL maintainer="作成者の氏名" LABEL version="1.0" LABEL description="DockerFileのテスト Apacheサーバー起動" # 必要パッケージのインストール RUN apt update RUN apt install -y tzdata RUN apt install -y apache2 # ポート開放 EXPOSE 80 CMD ["apachectl", "-D", "FOREGROUND"]ビルドしてイメージを作成
$ docker image build -t websys:production ./※今回、DockerFileはカレントディレクトリに作成しているためパス部分が
./
となっている。イメージの確認
$ docker image ls REPOSITORY TAG IMAGE ID CREATED SIZE websys production 5e35969b988e 15 seconds ago 67.3MB ubuntu 18.10 9dc19675e327 16 months ago 67.3MB上記のイメージを使ってコンテナ作成
$ docker container run -it -d -p 8080:80 --name ap1_server websys:production以下のURLにアクセスして初期画面が開かれればOK!
http://[VMの外部IP(グローバルIPアドレス)]:8080/
4.Github上のコードを取得するDockerfileに作り直し
Github上に
main
ブランチとdev
ブランチがある前提で、本番環境はmain
ブランチからソースコードをクローンする様にし、開発環境はdev
ブランチからソースをクローンする様に作り直し。本番環境、開発環境はクローン対象が違うため、それぞれDockerfileを用意する。
まずはディレクトリ作成
$ sudo mkdir ./main $ sudo mkdir ./devビルド時に反映させるサイトコンフィグの情報を作成
■本番環境用
$ sudo nano ./main/main_site.confmain_site.conf# Githubのリポジトリの階層構想により、DocumentoRootの場所は調整。 <VirtualHost *:80> ServerAdmin webmaster@localhost DocumentRoot /var/www/html/main/App ErrorLog ${APACHE_LOG_DIR}/error.log CustomLog ${APACHE_LOG_DIR}/access.log combined </VirtualHost>■開発環境用
$ sudo nano ./dev/dev_site.confdev_site.conf<VirtualHost *:80> ServerAdmin webmaster@localhost DocumentRoot /var/www/html/dev/App ErrorLog ${APACHE_LOG_DIR}/error.log CustomLog ${APACHE_LOG_DIR}/access.log combined </VirtualHost>DockerFile を作成し直し
※手順3のDockerfileは破棄してしまってOK。■本番環境用のDockerfileを作成
$ sudo nano ./main/DockerfileDockerfile# ベースイメージの取得 FROM ubuntu:20.04 # メタデータの登録 LABEL maintainer="作成者の氏名" LABEL version="2.0" LABEL description="DockerFileのテスト Apacheサーバー起動" # 必要パッケージのインストール RUN apt update RUN apt install -y tzdata RUN apt install -y apache2 RUN apt install -y git # 本番環境用開のサイト構築(この部分が開発環境とは異なる!) ADD ./main_site.conf /etc/apache2/sites-available/ RUN git clone --depth 1 -b main https://github.com/Smiler5617/test_websys.git /var/www/html/main RUN a2dissite 000-default RUN a2ensite main_site # ポート開放 EXPOSE 80 CMD ["apachectl", "-D", "FOREGROUND"]■開発環境用のDockerfileを作成
$ sudo nano ./dev/DockerfileDockerfile# ベースイメージの取得 FROM ubuntu:20.04 # メタデータの登録 LABEL maintainer="作成者の氏名" LABEL version="2.0" LABEL description="DockerFileのテスト Apacheサーバー起動" # 必要パッケージのインストール RUN apt update RUN apt install -y tzdata RUN apt install -y apache2 RUN apt install -y git # 開発環境用のサイト構築(この部分が本番環境とは異なる!) ADD ./dev_site.conf /etc/apache2/sites-available/ RUN git clone --depth 1 -b dev https://github.com/Smiler5617/test_websys.git /var/www/html/dev RUN a2dissite 000-default RUN a2ensite dev_site # ポート開放 EXPOSE 80 CMD ["apachectl", "-D", "FOREGROUND"]それぞれのDockerfileをビルド
$ docker image build -t websys:main ./main/ $ docker image build -t websys:dev ./dev/イメージの確認
$ docker image ls REPOSITORY TAG IMAGE ID CREATED SIZE websys dev cee2d11ec02f 37 seconds ago 264MB websys main 7ac716953021 6 minutes ago 264MB ubuntu 20.04 d70eaf7277ea 3 weeks ago 72.9MBイメージよりコンテナ作成
※ポートのマッピングは本番環境と開発環境で変える。$ docker container run -it -d -p 8080:80 --name ap_server websys:main $ docker container run -it -d -p 8081:80 --name dev_ap_server websys:devちゃんと起動できているか確認
本番環境:http://[VMの外部IP(グローバルIPアドレス)]:8080/
開発環境:http://[VMの外部IP(グローバルIPアドレス)]:8081/
試しに
dev
ブランチでindex.htmlに変更を加えてimageを作り直したら、ちゃんと反映されているので今回やってみたかった事はできた。
※DockerfileのRUN
コマンドの中でgit clone
の記述をしているので、イメージの作成タイミングでないとクローンをし直せない。おまけ
上記にも記載した通り、ちょっとした修正でもイメージを作り直す必要があるので、ここら辺をもう少し簡易にできないのか試してみた。
方法としては
startup.sh
を作成して、そこの中で『git clone』と『Apacheの起動』をさせる命令を書く。そしてDokcerfileのCMD
コマンドではstartup.sh
を実行させるだけ。
startup.sh
の作成(本番環境用)$ sudo nano ./main/startup.shstartup.sh(本番環境用)git clone --depth 1 -b main https://github.com/Smiler5617/test_websys.git /var/www/html/main apachectl -D FOREGROUND(開発環境用)$ sudo nano ./dev/startup.shstartup.sh(開発環境用)git clone --depth 1 -b dev https://github.com/Smiler5617/test_websys.git /var/www/html/dev apachectl -D FOREGROUNDDockerfileの作成
Dockerfile(本番環境用)# ベースイメージの取得 FROM ubuntu:20.04 # メタデータの登録 LABEL maintainer="作成者の氏名" LABEL version="3.0" LABEL description="DockerFileのテスト Apacheサーバー起動" # 必要パッケージのインストール RUN apt update RUN apt install -y tzdata RUN apt install -y apache2 RUN apt install -y git # 必要ファイルを入れる ADD ./main_site.conf /etc/apache2/sites-available/ ADD ./startup.sh /etc/apache2/ # デフォルトサイトからの切り替え RUN a2dissite 000-default RUN a2ensite main_site # ポート開放 EXPOSE 80 # イメージからコンテナを作成するタイミングでシェルを実行 CMD ["bash", "/etc/apache2/startup.sh "]Dockerfile(開発環境用)# ベースイメージの取得 FROM ubuntu:20.04 # メタデータの登録 LABEL maintainer="作成者の氏名" LABEL version="3.0" LABEL description="DockerFileのテスト Apacheサーバー起動" # 必要パッケージのインストール RUN apt update RUN apt install -y tzdata RUN apt install -y apache2 RUN apt install -y git # 必要ファイルを入れる ADD ./dev_site.conf /etc/apache2/sites-available/ ADD ./startup.sh /etc/apache2/ # デフォルトサイトからの切り替え RUN a2dissite 000-default RUN a2ensite dev_site # ポート開放 EXPOSE 80 # イメージからコンテナを作成するタイミングでシェルを実行 CMD ["bash", "/etc/apache2/startup.sh "]ビルドしてイメージ作成
$ docker image build -t websys:main ./main/ $ docker image build -t websys:dev ./dev/イメージよりコンテナ作成
$ docker container run -it -d -p 8080:80 --name ap_server websys:main $ docker container run -it -d -p 8081:80 --name dev_ap_server websys:devこの改良により、わざわざイメージから作り直さずにコンテナだけ作成し直せばソースコードの更新ができるようになった。
以上!
- 投稿日:2020-11-20T02:18:02+09:00
コンテナとGitを利用したWebシステム開発の効率化
はじめに
システムやアプリの開発をする際、Github上にリポジトリを作ってそこでソース管理することが多いが、実行環境がこれらのソースを直接的に見ていなかったり、開発環境はローカルで立てたりするため、手元では動いたが本番環境にアップロードすると失敗といった事が頻繁に起こっていた。
今回、ソースコードをGithub上に置き、そのソースコードを参照する様なWebサーバーコンテナができないかを試してみたので、本記事ではその内容をまとめる。実行環境
【Docker導入環境】
・Ubuntu20.04 LTS(GCP上)
・docker19.03.13【コンテナ環境】
・Image Ubuntu:20.04
・Apache2.4.41試してみる事
docker上に2つのWebサーバー用コンテナを作成して、1つを本番用、もう1つを開発用とする。
本番用のコンテナはビルドする度に、Githubリポジトリのmain
ブランチからアプリコードをCloneする様にし、
開発用のコンテナはdev
ブランチからアプリコードをCloneするようにDockerfile
を作成してみる。手順
1.環境準備
2.Github上にリポジトリを作成
3.Apacheを起動させるまでのDockerfileを作成
4.Github上のコードを取得するDockerfileに修正1.環境の準備
GCP上にVMインスタンスを作成
※イメージはUbuntu20.4 LTSdockerのインストール
※【Dockerコンテナ内のUbuntuではsystemctlは使えない】の手順1を参考に。2.Github上にリポジトリを作成
Github上で以下を実施する。
■Public用のリポジトリを作成
※手順4のDockerfileの内容は、Publicリポジトリからクローンすることを前提としている。■作成したリポジトリ内の直下に『App』フォルダを作成
■『App』フォルダ内にindex.htmlを作成
※中身は適当に記載■開発用のブランチを切る
※手順4ではブランチ名はmain(本番用)
とdev(開発用)
を前提としている。3.Apacheを起動させるまでのDockerfileを作成
DockerFile を作成する
$ sudo nano ./Dockerfile※最初『DockerFile』というファイルを作成したが、"F" が大文字だったためビルドに失敗した。
Dockerfile# ベースイメージの取得 FROM ubuntu:20.04 # メタデータの登録 LABEL maintainer="作成者の氏名" LABEL version="1.0" LABEL description="DockerFileのテスト Apacheサーバー起動" # 必要パッケージのインストール RUN apt update RUN apt install -y tzdata RUN apt install -y apache2 # ポート開放 EXPOSE 80 CMD ["apachectl", "-D", "FOREGROUND"]ビルドしてイメージを作成
$ docker image build -t websys:production ./※今回、DockerFileはカレントディレクトリに作成しているためパス部分が
./
となっている。イメージの確認
$ docker image ls REPOSITORY TAG IMAGE ID CREATED SIZE websys production 5e35969b988e 15 seconds ago 67.3MB ubuntu 18.10 9dc19675e327 16 months ago 67.3MB上記のイメージを使ってコンテナ作成
$ docker container run -it -d -p 8080:80 --name ap1_server websys:production以下のURLにアクセスして初期画面が開かれればOK!
http://[VMの外部IP(グローバルIPアドレス)]:8080/
4.Github上のコードを取得するDockerfileに作り直し
Github上に
main
ブランチとdev
ブランチがある前提で、本番環境はmain
ブランチからソースコードをクローンする様にし、開発環境はdev
ブランチからソースをクローンする様に作り直し。本番環境、開発環境はクローン対象が違うため、それぞれDockerfileを用意する。
まずはディレクトリ作成
$ sudo mkdir ./main $ sudo mkdir ./devビルド時に反映させるサイトコンフィグの情報を作成
■本番環境用
$ sudo nano ./main/main_site.confmain_site.conf# Githubのリポジトリの階層構想により、DocumentoRootの場所は調整。 <VirtualHost *:80> ServerAdmin webmaster@localhost DocumentRoot /var/www/html/main/App ErrorLog ${APACHE_LOG_DIR}/error.log CustomLog ${APACHE_LOG_DIR}/access.log combined </VirtualHost>■開発環境用
$ sudo nano ./dev/dev_site.confdev_site.conf<VirtualHost *:80> ServerAdmin webmaster@localhost DocumentRoot /var/www/html/dev/App ErrorLog ${APACHE_LOG_DIR}/error.log CustomLog ${APACHE_LOG_DIR}/access.log combined </VirtualHost>DockerFile を作成し直し
※手順3のDockerfileは破棄してしまってOK。■本番環境用のDockerfileを作成
$ sudo nano ./main/DockerfileDockerfile# ベースイメージの取得 FROM ubuntu:20.04 # メタデータの登録 LABEL maintainer="作成者の氏名" LABEL version="2.0" LABEL description="DockerFileのテスト Apacheサーバー起動" # 必要パッケージのインストール RUN apt update RUN apt install -y tzdata RUN apt install -y apache2 RUN apt install -y git # 本番環境用のサイト構築(この部分が開発環境とは異なる!) COPY ./main_site.conf /etc/apache2/sites-available/ RUN git clone --depth 1 -b main https://github.com/Smiler5617/test_websys.git /var/www/html/main RUN a2dissite 000-default RUN a2ensite main_site # ポート開放 EXPOSE 80 CMD ["apachectl", "-D", "FOREGROUND"]■開発環境用のDockerfileを作成
$ sudo nano ./dev/DockerfileDockerfile# ベースイメージの取得 FROM ubuntu:20.04 # メタデータの登録 LABEL maintainer="作成者の氏名" LABEL version="2.0" LABEL description="DockerFileのテスト Apacheサーバー起動" # 必要パッケージのインストール RUN apt update RUN apt install -y tzdata RUN apt install -y apache2 RUN apt install -y git # 開発環境用のサイト構築(この部分が本番環境とは異なる!) COPY ./dev_site.conf /etc/apache2/sites-available/ RUN git clone --depth 1 -b dev https://github.com/Smiler5617/test_websys.git /var/www/html/dev RUN a2dissite 000-default RUN a2ensite dev_site # ポート開放 EXPOSE 80 CMD ["apachectl", "-D", "FOREGROUND"]それぞれのDockerfileをビルド
$ docker image build -t websys:main ./main/ $ docker image build -t websys:dev ./dev/イメージの確認
$ docker image ls REPOSITORY TAG IMAGE ID CREATED SIZE websys dev cee2d11ec02f 37 seconds ago 264MB websys main 7ac716953021 6 minutes ago 264MB ubuntu 20.04 d70eaf7277ea 3 weeks ago 72.9MBイメージよりコンテナ作成
※ポートのマッピングは本番環境と開発環境で変える。$ docker container run -it -d -p 8080:80 --name ap_server websys:main $ docker container run -it -d -p 8081:80 --name dev_ap_server websys:devちゃんと起動できているか確認
本番環境:http://[VMの外部IP(グローバルIPアドレス)]:8080/
開発環境:http://[VMの外部IP(グローバルIPアドレス)]:8081/
試しに
dev
ブランチでindex.htmlに変更を加えてimageを作り直したら、ちゃんと反映されているので今回やってみたかった事はできた。
※DockerfileのRUN
コマンドの中でgit clone
の記述をしているので、イメージの作成タイミングでないとクローンをし直せない。おまけ
上記にも記載した通り、ちょっとしたコードの修正でもイメージを作り直す必要があるので、ここら辺をもう少し簡易にできないのか試してみた。
方法としては
startup.sh
を作成して、そこの中で『git clone』と『Apacheの起動』をさせる命令を書く。そしてDokcerfileのCMD
コマンドではstartup.sh
を実行させるだけ。
startup.sh
の作成(本番環境用)$ sudo nano ./main/startup.shstartup.sh(本番環境用)git clone --depth 1 -b main https://github.com/Smiler5617/test_websys.git /var/www/html/main apachectl -D FOREGROUND(開発環境用)$ sudo nano ./dev/startup.shstartup.sh(開発環境用)git clone --depth 1 -b dev https://github.com/Smiler5617/test_websys.git /var/www/html/dev apachectl -D FOREGROUNDDockerfileの作成
Dockerfile(本番環境用)# ベースイメージの取得 FROM ubuntu:20.04 # メタデータの登録 LABEL maintainer="作成者の氏名" LABEL version="3.0" LABEL description="DockerFileのテスト Apacheサーバー起動" # 必要パッケージのインストール RUN apt update RUN apt install -y tzdata RUN apt install -y apache2 RUN apt install -y git # 必要ファイルを入れる COPY ./main_site.conf /etc/apache2/sites-available/ COPY ./startup.sh /etc/apache2/ # デフォルトサイトからの切り替え RUN a2dissite 000-default RUN a2ensite main_site # ポート開放 EXPOSE 80 # イメージからコンテナを作成するタイミングでシェルを実行 CMD ["bash", "/etc/apache2/startup.sh "]Dockerfile(開発環境用)# ベースイメージの取得 FROM ubuntu:20.04 # メタデータの登録 LABEL maintainer="作成者の氏名" LABEL version="3.0" LABEL description="DockerFileのテスト Apacheサーバー起動" # 必要パッケージのインストール RUN apt update RUN apt install -y tzdata RUN apt install -y apache2 RUN apt install -y git # 必要ファイルを入れる COPY ./dev_site.conf /etc/apache2/sites-available/ COPY ./startup.sh /etc/apache2/ # デフォルトサイトからの切り替え RUN a2dissite 000-default RUN a2ensite dev_site # ポート開放 EXPOSE 80 # イメージからコンテナを作成するタイミングでシェルを実行 CMD ["bash", "/etc/apache2/startup.sh "]ビルドしてイメージ作成
$ docker image build -t websys:main ./main/ $ docker image build -t websys:dev ./dev/イメージよりコンテナ作成
$ docker container run -it -d -p 8080:80 --name ap_server websys:main $ docker container run -it -d -p 8081:80 --name dev_ap_server websys:devこの改良により、わざわざイメージから作り直さずにコンテナだけ作成し直せばソースコードの更新ができるようになった。
以上!
追伸
その後
docker-compose
も使ってみたので、その時の内容もメモとして残しています。
【docker-composeとGitを利用したWebシステム開発の効率化】
- 投稿日:2020-11-20T00:30:24+09:00
Git ケーススタディ集
Gitのケーススタディ集
ケースからGitの使い方を学ぶ
最近業務でGitのいろいろの操作をする。たまに今までしたことない操作もして、時々間違えた操作することもある。事例からGitの使い方を学べば、捜査を間違えたとしても焦らず対応できると思い。ネットで何かないか探した。そんでこんなサイトにたどり着いた。
https://qiita.com/wariichi/items/61b5e56431a212c45b13問題を解く感じでこの記事を読んでいこうかなと思います。
今まで知らなかった操作や、読んで方法を事例を解決するための操作を思いつかなかったときは、ここにメモとして残しておこうと思う。修正、手直し系
過去のコミットのコメントを修正したい、また追加で修正を加える
---------------------------- 直前のコミットを反映する場合 ---------------------------- # 修正を反映するファイルを選択 $ git add hoge.txt # 選択したファイルをコミット →ammendにより直前のコミットにaddした修正が追加される $ git commit --amend $ git commit --amend -a-aオプションを使てする記述もあったけど、いったい何だろう?
---------------------------- 直前のコミットでない場合 rebaseを使った方法 ----------------------------