Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

開発ワークフロー

このセクションでは、Dockim コンテナ内での日々の開発活動について説明します。コマンドの実行からコードの編集、開発環境の管理まで。

日々の開発ルーチン

一日の始まり

Dockim での典型的な一日は以下から始まります:

# プロジェクトに移動
cd my-project

# 開発環境を開始
dockim up

# エディタを開く
dockim neovim
# または短縮エイリアスを使用
dockim v

開発中

一日を通して、さまざまなコマンドを使用します:

# テストを実行
dockim exec npm test

# 新しい依存関係をインストール
dockim exec npm install lodash

# git ステータスを確認
dockim exec git status

# データベースマイグレーションを実行
dockim exec python manage.py migrate

一日の終わり

正常な終了:

# まず作業を保存!
# その後コンテナを停止
dockim stop

# または完全なクリーンアップ
dockim down

シェルでの作業

対話型シェルアクセス

コンテナ内で作業する最も一般的な方法:

# デフォルトシェル(通常zsh)
dockim shell
# 短縮エイリアス
dockim sh

# 特定のシェル
dockim bash

シェル内では以下にアクセスできます:

  • /workspace にマウントされたすべてのプロジェクトファイル
  • インストール済みの開発ツールと言語
  • 依存関係ダウンロード用のネットワークアクセス
  • 設定からの環境変数

シェルのカスタマイズ

好みのシェルを設定:

# ~/.config/dockim/config.toml
shell = "/bin/zsh"  # または "/bin/bash", "/bin/fish" など

コマンドの実行

単発コマンド

対話型シェルを開かずにコマンドを実行:

# 単一コマンド
dockim exec ls -la
dockim exec python --version
dockim exec npm run build

# 引数付きコマンド
dockim exec git commit -m "Add new feature"
dockim exec curl -X POST http://localhost:3000/api/test

スクリプトの実行

プロジェクトスクリプトを実行:

# package.json スクリプト
dockim exec npm run dev
dockim exec npm run test:watch
dockim exec npm run lint

# カスタムスクリプト
dockim exec ./scripts/setup.sh
dockim exec python scripts/seed_database.py

ファイル操作

ファイル編集パターン

クイック編集:

# 小さな設定変更
dockim exec nano .env
dockim exec vim package.json

長時間の編集セッション:

# リモート UI で完全な Neovim を起動
dockim neovim

# またはコンテナ内で直接(リモート UI なし)
dockim neovim --no-remote-ui

ファイル同期

ファイルはホストとコンテナ間で自動的に同期されます:

# ホストで編集
echo "console.log('hello');" > app.js

# コンテナ内ですぐに利用可能
dockim exec node app.js  # 出力: hello

開発サーバー管理

開発サーバーの実行

Node.js アプリケーション:

# 開発サーバーを開始
dockim exec npm run dev

# 特定のポートで
dockim exec PORT=3000 npm start

Python アプリケーション:

# Django
dockim exec python manage.py runserver 0.0.0.0:8000

# Flask
dockim exec FLASK_ENV=development flask run --host=0.0.0.0

複数のサービス:

# ターミナル1: バックエンド
dockim exec npm run server

# ターミナル2: フロントエンド
dockim exec npm run client

# ターミナル3: 追加サービス
dockim exec npm run workers

ポートアクセス

実行中のサービスにアクセス:

# ポートフォワーディングを追加
dockim port add 3000
dockim port add 8080:80  # host:container

# アクティブなフォワーディングを表示
dockim port ls

# ホストブラウザからアクセス
# http://localhost:3000
# http://localhost:8080

データベースとサービス連携

データベース操作

PostgreSQL:

# データベースに接続
dockim exec psql -h database -U postgres myapp

# マイグレーションを実行
dockim exec python manage.py migrate

# データをシード
dockim exec python manage.py loaddata fixtures/initial_data.json

MongoDB:

# MongoDB に接続
dockim exec mongo mongodb://database:27017/myapp

# データをインポート
dockim exec mongoimport --host database --db myapp --collection users --file users.json

Redis 操作

# Redis に接続
dockim exec redis-cli -h redis

# Redis ステータスを確認
dockim exec redis-cli -h redis ping

環境管理

環境変数

単一コマンド用に設定:

dockim exec NODE_ENV=production npm run build
dockim exec DEBUG=app:* npm start

設定で設定:

# compose.yml
services:
  dev:
    environment:
      - NODE_ENV=development
      - API_URL=http://localhost:3000
      - DEBUG=true

テストワークフロー

テストの実行

単体テスト:

# すべてのテストを実行
dockim exec npm test

# 特定のテストファイルを実行
dockim exec npm test -- user.test.js

# ウォッチモード
dockim exec npm run test:watch

統合テスト:

# テストデータベースで
dockim exec TEST_DB_URL=postgres://test:test@database:5432/test_db npm test

# e2eテストを実行
dockim exec npm run test:e2e

デバッグ

デバッグ設定

Node.js デバッグ:

# デバッガーで開始
dockim exec node --inspect=0.0.0.0:9229 app.js

# デバッガー用のポートフォワードを追加
dockim port add 9229

Python デバッグ:

# pdb をインストール
dockim exec pip install pdb

# pdb でデバッグ
dockim exec python -m pdb app.py

ベストプラクティス

コマンドの整理

プロジェクト固有のエイリアスを作成:

# シェル rc ファイルに追加
alias dtest="dockim exec npm test"
alias ddev="dockim exec npm run dev"  
alias dlint="dockim exec npm run lint"
alias dfix="dockim exec npm run lint:fix"

ワークフローの最適化

ターミナル管理:

# ターミナル1: メイン開発
dockim neovim

# ターミナル2: サーバー/サービス
dockim exec npm run dev

# ターミナル3: テスト/コマンド
dockim shell

# ターミナル4: 監視
docker stats

ホットリロード設定:

# Dockerfile でホットリロードを有効化
ENV CHOKIDAR_USEPOLLING=true
ENV WATCHPACK_POLLING=true

外部ツールとの統合

Git ワークフロー

# コンテナ内での Git 操作
dockim exec git status
dockim exec git add .
dockim exec git commit -m "Update feature"
dockim exec git push

# またはホストで git を使用(推奨)
git status  # ホストの git をコンテナファイルで使用

これでユーザーガイドセクションが完了しました。Dockim のコアワークフローについて包括的な知識を得ました。次はNeovim 連携で高度な編集機能を探索しましょう。