2023/06/28

環境変数

環境変数

bash_profileはログイン時にのみ実行されます。
bashrcは対話モードのbashを起動する時に毎回実行されます。

# パス確認
which コマンド

# 環境変数引き継いでユーザー切り替え
su - ユーザー名

# 環境変数引き継がないでユーザー切り替え
su ユーザー名

2022/10/31

DockerComposeの書き方

# 環境変数
x-var1: &MYSQL_PASSWORD
  "文字列"
x-var2: &DATABASE
  "文字列"
x-var3: &DB_USER
  "文字列"
x-var4: &DB_PASSWORD
  "文字列"
# システム構成
services:
  db:
    build:
      context: .
      dockerfile: Dockerfile1
    #depends_on:
    volumes:
      - db_data:/var/lib/mysql
    # environment > env_file
    environment:
      MYSQL_ROOT_PASSWORD: *MYSQL_PASSWORD
      MYSQL_DATABASE: *DATABASE
      MYSQL_USER: *DB_USER
      MYSQL_PASSWORD: *DB_PASSWORD
    env_file:
      - ./db.env
    restart: always
    #ports:
  wordpress:
    build:
      context: .
      dockerfile: Dockerfile2
    depends_on:
      - db
    #volumes:
    # environment > env_file
    environment:
      WORDPRESS_DB_HOST: db:3306
      WORDPRESS_DB_USER: *DB_USER
      WORDPRESS_DB_PASSWORD: *DB_PASSWORD
    env_file:
      - ./wordpress.env
    restart: always
    ports:
      - "8080:80"
volumes:
  db_data:

2022/10/28

nvidia-container-toolkitインストール

# nvidia-container-toolkitインストール
## 参考文献
https://docs.nvidia.com/datacenter/cloud-native/container-toolkit/latest/install-guide.html
## インストール
sudo curl -fsSL https://nvidia.github.io/libnvidia-container/gpgkey | sudo gpg --dearmor -o /usr/share/keyrings/nvidia-container-toolkit-keyring.gpg
sudo vi /etc/apt/sources.list.d/nvidia-container-toolkit.list
    deb [signed-by=/usr/share/keyrings/nvidia-container-toolkit-keyring.gpg] https://nvidia.github.io/libnvidia-container/stable/deb/$(ARCH) /
sudo apt-get update
sudo apt-get install -y nvidia-container-toolkit
## docker再構築
sudo nvidia-ctk runtime configure --runtime=docker
## 再起動
## 動作確認
### Windows11&WSLの場合
sudo service docker start
sudo docker run --rm --gpus all nvidia/cuda:11.0.3-base-ubuntu20.04 nvidia-smi
### それ以外の場合
sudo docker run --rm --gpus all nvidia/cuda:11.0.3-base-ubuntu20.04 nvidia-smi

Dockerfileの書き方

# イメージ名:タグ名
FROM nginx:1.21

# メタデータ
LABEL maintainer="Namae Myouzi <mail@example.com>"

# 実行ユーザー
USER root

# ディレクトリ移動
WORKDIR /

# ローカルファイルをコンテナ内にコピーする
## 設定ファイル
COPY ./default.conf /etc/nginx/conf.d/
## コンテンツ
COPY ./*.html /var/www/html/
## 証明書
COPY ./ssl /etc/nginx/ssl

# イメージ作成時に実行するコマンド
RUN \
  apt-get update \
  && apt-get upgrade -y \
  && apt-get autoremove -y

# コンテナ実行時に実行するコマンド
## 上書き不可
ENTRYPOINT ["/usr/bin/date"]
## 上書き可能
CMD ["/usr/bin/date"]

# ListenPort
EXPOSE 80 443

# HealthCheck
HEALTHCHECK \
  --interval=30s \
  --timeout=10s \
  --start-period=60s \
  --retries=2 \
  CMD curl -f http://localhost/ || exit 1