よっしー
こんにちは。よっしーです(^^)
今日は、Dockerによる開発環境の構築する方法についてご紹介します。
背景
bashの実行環境を揃える機会があったので、そのときの内容を備忘として残しました。
この記事のソースは下記のサイトにアップしています。
環境作成
ローカルにdockerでbashの環境を作成しました。
作成ファイル一覧
下記のファイルを作成しました。
.
├── Makefile
├── README.md
├── compose.yml
└── local
├── Dockerfile
└── work
└── 00_hello.sh
local/Dockerfile
FROM ubuntu:24.04
compose.yml
version: '3.8'
services:
local:
build: ./local
container_name: local
working_dir: /work
volumes:
- ./local/work:/work
networks:
- net
networks:
net:
local/work/00_hello.sh
#!/bin/bash
echo "Hello, World !"
Makefile
SHELL = /bin/bash
WOKR_DIR = ./
.DEFAULT_GOAL := help
# コンテナの状態
.PHONY: ps
ps:
cd $(WOKR_DIR) \
&& docker compose ps
# アプリのビルド
.PHONY: build
build:
cd $(WOKR_DIR) \
&& docker compose build
# アプリの起動
.PHONY: up
up:
cd $(WOKR_DIR) \
&& docker compose up -d
# アプリの停止
.PHONY: down
down:
cd $(WOKR_DIR) \
&& docker compose down
# コンテナの削除
.PHONY: clean
clean:
cd $(WOKR_DIR) \
&& docker compose down --rmi all --volumes --remove-orphans
# awsコンテナへのログイン
.PHONY: login
login:
cd $(WOKR_DIR) \
&& docker compose run local bash
# help
.PHONY: help
help:
@grep -B 2 -E '^[a-zA-Z_-]+:' Makefile \
| grep -v '.PHONY' \
| grep -v -E '^\s*$$' \
| tr '\n' ',' \
| sed 's/--,/\n/g' \
| awk -F, '{printf "%-20s %s\n", $$2, $$1}'
動作確認
下記のコマンドを実行します。
make build
make up
make login
bash 00_hello.sh
下記の結果が出力されていれば成功です。
root@c69b17165e55:/work# bash 00_hello.sh
Hello, World !
おわりに
今日は、Dockerによる開発環境の構築する方法についてご紹介しました。
よっしー
何か質問や相談があれば、コメントをお願いします。また、エンジニア案件の相談にも随時対応していますので、お気軽にお問い合わせください。
それでは、また明日お会いしましょう(^^)
コメント