0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

docker-compose.ymlを使ってみたいのです

Last updated at Posted at 2024-04-04

どうやらdocker-composeを使ったほうが便利にbuildできるらしい

基本的な構造は下記とのこと(GPTさん曰く)

version: '3.8' # Docker Composeのバージョン
services: # ここにコンテナ(サービス)を定義する
  web: # サービス名
    image: nginx:latest # 使用するイメージ
    ports:
      - "80:80" # ポートマッピング(ホスト:コンテナ)
    volumes:
      - ./html:/usr/share/nginx/html # ボリュームマウント(ホスト:コンテナ)
  app: # 別のサービス
    build: ./app # Dockerfileのあるディレクトリパス
    environment:
      - APP_ENV=production # 環境変数
networks: # ネットワークの定義(必要に応じて)
  app-network:
    driver: bridge
volumes: # ボリュームの定義(必要に応じて)
  db-data:
    driver: local

とりあえずそれっぽいファイルを作成した
今回の目的はpythonが3.7のときに作成したコードの動作確認。
seleniumが4.0.0でないと動かなく、pyenvとかvenvを使うのもの面倒、、、
またaws lambdaにはコンテナでpushしているため実働に近い環境で動作確認ができるのも良いと思い、dockerで対応することにした。

version: '3.8'
services:
  app:
    image: sample
    build:
      context: .
      dockerfile: ./container/python/Dockerfile
    working_dir: /var/task
    volumes:
      - ./express/src:/var/task
    command: ls
    tty: true

これでdocker composeのversion が3.8のapp(仮称)というサービスが./container/python/DockerfileディレクトリにあるDockerfileを参照してbuildしてくれるはず
ということで下記コマンドを実行

docker-compose up --d

動作を確認するために下記コマンドを実行

docker-compose ps

これで動いているコンテナを確認できる

このコンテナに接続して中身を確認する

docker compose exec app bash

こんな感じで接続できた
・lsコマンドでディレクトリ内に必要なフォルダがあるか
・pwdコマンドでどこのディレクトリにいるか
上記2点を確認した

これで正常にdocker composeを用いて作成したコンテナに接続し、処理をすることができた.

docker buildして、runして、exec -it みたいな複数のターミナルをまたぐ作業よりもコマンド2つでできることが便利と思いました。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?