20220117のdockerに関する記事は11件です。

説明下手な人間がDockerの基本について書いてみた。

 説明下手な人間がDockerがどういうものかについて書いてみた。 初めまして! UnderWorldと申します。 仕事柄、Qiitaをよく使っていますが、新年に入ったということで新しいことにもチャレンジしようと思い、投稿してみました! 初めての投稿、初めてのマークダウン技法で戸惑いながら書きました。 優しい目で見ていただけると幸いです! 間違ったこと書いてんじゃねーよ!などのご意見がございましたら、コメントにてご指摘、ご教示をいただけると幸いです。 ちなみにUnderWorldという名前の由来がわかる人いたら、コメントで聞かせてください! この記事を書こうと思ったわけ 中学の同級生からDockerというものを知り、気になってggった結果を残しておきたかったため。 最近業務でDockerについて調査を行う作業が出てきたので、どういうものか思い出すため 調査している最中、下記のような記事を見つけてしまい、危機感を覚えたため・・・ これを書いた人のプロフィール 新卒2年目の中小SESで働いているらしい 1年ぐらい業務でJavaを触っていたらしい 信じられないくらい同じミスを繰り返すらしい そもそもDockerとはなんぞや? 一言で言えば仮想環境を構築するためのツールのようです。 Dockerはコンテナ仮想化という技術を使用している。 コンテナ仮想化のツールはDocker以外ではLXCってツールがあるらしい。 - 仮想環境って言ったら、VirtualBoxとかVMWareと同じなの? ↑おなじ仮想環境だけど、ちょっとちがいます。 まず、Dockerは「コンテナ仮想化」という技術を使用しています。 そしてVirtualBoxやVMwareでは「ホスト仮想化」という技術を使用しています この二つの違いを簡単に言ってしまうと、コンピューターの中にOSを全てぶち込むか、OSの中の必要な部分のみを入れるかという違いがあります。 下記にそれぞれの特徴まとめてみました! ホスト仮想化とコンテナ仮想化の違いとは・・・ 【ホスト仮想化】 コンピュータの中にOSの全てぶち込む必要があるよ! OSの中の一部分のみを入れることはできないのです・・・ OSの中身の全てを入れなくてはいけないので、起動が遅い、ディスクやメモリーなどのリソースがたくさん必要になります。 【コンテナ仮想化】 コンピュータの中にOSの中身を全て入れる必要はないよ! OSの一部分のみを入れることができるよ! 必要なものしか入れないから、ホスト仮想化と比べて起動が早いし、ディスクやメモリーなどのリソースが少ないよ! 必要なものしか入れない。ミニマリストな考えですね! Dockerがあることでなにがおいしいの? 誰でも同じ環境が作れるよ! Dockerはミドルウェアのインストールや環境設定などをコード化できるので、作成した環境をコード化して、同じ環境で本番環境を作ることができるよ! 使用するリソースが少ないから、効率的に作業できるよ! 上でもかいたけど、使用するリソースが少ないから効率よく作業できるよ! コストの削減効果があるよ! 使用するリソースが少ない⇨一台のOSで複数のアプリケーションを同時に使える!⇨コスト削減効果がある!⇨やったね! コンテナイメージってどこからGetするの? ↑DockerHubからGetできます! 「GitHubみたいなやつかなー」と思われたあなた、正解です! Docker版GitHubのようなものです! 色々な人がコンテナイメージを配布しているのでそれをもとに環境構築できます! 無料で使えますよ! まとめ 乱文ですが、最後までお読みいただきありがとうございます! Dockerというものは数年前から話題になっていますが、私がDockerを始めて知ったのはつい先月。エンジニアとしてかなり遅れていることを痛感しました。 今後も自分が勉強したことを投稿して、「このページのおかげで理解できた!」と思えるような記事作りを目指していきますので、どうぞよろしくお願いします! 何か間違っている箇所等ございましたら、ご指摘、ご教示をいただけると幸いです。
  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

Nuxt.jsにChart.jsを導入してグラフを表示する

はじめに Nuxt.jsを使用しChart.jsで棒グラフを作成する プロジェクトがあったのでその備忘録 ※API連携は次の記事で書きます 環境 macOS Docker ゴール 国語、算数、理科、英語、社会(5教科)の テストの点数をグラフにして表示 Chart.jsインストール root $ docker-compose run front yarn add vue-chartjs chart.js BarChart.vue作成 Nuxt.jsのcomponentsディレクトリへChart.vueを作成 front $ touch components/BarChart.vue BarChart.vue <script> import { Bar, mixins } from 'vue-chartjs' const { reactiveProp } = mixins export default { extends: Bar, mixins: [reactiveProp], props: { chartdata: { type: Object, default: null }, options: { type: Object, default: null } }, mounted () { this.renderChart(this.chartData, this.options) } } </script> Chart.vueの作成(親ページ) front $ touch pages/Chart.vue Chart.vue <template> <v-main> <v-container> <v-row> <BarChart :chart-data="bar_data_collection" :options="bar_options" /> </v-row> </v-container> </v-main> </template> <script> import BarChart from '~/components/BarChart.vue' export default { components: { BarChart }, data () { return { bar_data_collection: { datasets: [], options: {} } } }, mounted () { this.barFillData() }, methods: { barFillData () { this.bar_data_collection = { labels: ['国語', '算数', '理科', '英語', '社会'], datasets: [ { backgroundColor: [ 'rgba(255, 99, 132, 0.2)', 'rgba(54, 162, 235, 0.2)', 'rgba(255, 206, 86, 0.2)', 'rgba(75, 192, 192, 0.2)', 'rgba(153, 102, 255, 0.2)' ], data: [50, 60, 70, 80, 90, 70] } ] } this.bar_options = { title: { display: true, fontSize: 18, text: '学力確認テスト' }, responsive: true, maintainAspectRatio: false, legend: { position: 'top', display: false }, layout: { padding: 0 }, scales: { yAxes: [ { ticks: { beginAtZero: true, min: 0, max: 100 } } ] } } } } } </script> 備考 グラフのスタイルやオプションは数多くあるので 公式サイトを確認すると良いと思います→ Chart.js公式 以上、お疲れ様でした
  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

深層機械学習の環境構築(Windows10 21H2 + WSL2 + Docker Desktop)

Windows上で深層機械学習のNVIDIA GPUを使用した環境構築するも、なぜかうまく動かない事が多かったのでしっかりと基本を抑える為にまとめてみる。 環境 Windows10 Pro 21H2 NVIDIA GeForce GTX 1060 6GB 環境構築の方針 Windows10 21H2でWSL2からGPUを使用できるようになったので、基本はDockerで環境構築を行う。 深層学習用のライブラリは、依存しているライブラリの数も多くそれらを切り替える環境構築するよりはDocker上で環境構築するのが良いだろう。 NVIDIAのWSL関係のドキュメントは以下 https://docs.nvidia.com/cuda/wsl-user-guide/index.html NVIDIA Driver NVIDIAドライバはホストOS(すなわちWindows10)にインストールする。 上記からダウンロードするべしとなっているが、2022年1月現在上記でダウンロードされるドライバのバージョンは510.06。 GeForce Experience上では511.23にアップデートできるようになっているがアップデートして良いのかわからず。 一応ドキュメントに従ってアップデートをせずに510.06を使用する事とする。 ちなみにNVIDIAのドライバはGameReadyドライバとStudioドライバの2種類あるが、上記からダウンロードできたのはGameReadyドライバだった。 NVIDIA CUDA NVIDAが開発したGPUプログラム開発環境。画像編集ソフトや動画編集ソフトで使用する事もあるのでWindowsにインストールしている人も多いだろう。 今回はDocker上に開発環境を構築するのでWindows上にインストールするのは必須では無い。 NVIDIA cuDNN NVIDIA CUDA Deep Neural Networkの略。ディープ ニューラル ネットワークでの使用を目的としたGPUで高速化されたライブラリ。 深層機械学習のライブラリではGPUを使用する際に cuDNNを依存している事がある。 こちらもDocker上に開発環境を構築するのでWindows上にインストールするのは必須では無い。 インストールと設定 WSL2のインストールと設定 マイクロソフトから丁寧なドキュメントが公開されている。 https://docs.microsoft.com/ja-jp/windows/wsl/install ちょっと古いセットアップ方法とかだと、様々ダウンロードしたりとあったけど現在はコマンド一発でインストール可能。素晴らしい。 wsl --install WSL2の開発に必要な情報は以下にまとめられている。 https://docs.microsoft.com/ja-jp/windows/wsl/setup/environment#set-up-your-linux-username-and-password Docker Desktop for Windowsのインストールと設定 以下からダウンロード https://www.docker.com/products/docker-desktop インストーラのConfiguration画面では「 Install required Windows components for WSL 2」の選択を忘れずに。 インストール後の設定画面 Use the WSL2 based engine にチェックが入っている事 Use Docker Compose V2 のチェックが入っている事 「Use Docker Compose V2」にチェックが入っている事となっているが、Docker ComposeのV1からV2に移行の過程のようなので、元にするdocker-compose.ymlによってはチェックを外さないと動かないケースがあるかもしれない。 V2がメインになってくる事が容易に想像できるのでチェックはつけておく。 Dockerイメージ Dockerイメージを0から用意する必要は無く、ある程度設定されたDockerイメージがNVIDIAから公開されている。 ベースになるライブラリがインストール済みのイメージをベースにDockerイメージを作成するのが良い。 起動確認 Docker上でGPUが有効になっているか確認を行う。CUDAが有効になっているDockerイメージでベンチマークを行ってみる。 $ docker run --gpus all nvcr.io/nvidia/k8s/cuda-sample:nbody nbody -gpu -benchmark 結果 > Windowed mode > Simulation data stored in video memory > Single precision floating point simulation > 1 Devices used for simulation GPU Device 0: "Pascal" with compute capability 6.1 > Compute 6.1 CUDA device: [NVIDIA GeForce GTX 1060 6GB] 10240 bodies, total time for 10 iterations: 7.996 ms = 131.131 billion interactions per second = 2622.615 single-precision GFLOP/s at 20 flops per interaction きちんとGPUが認識していればOK。今回はNVIDIA GeForce GTX 1060 6GBが正しく認識されている。
  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

debug.gemでDocker上のRubyをデバッグしたい

やりたいこと ruby/debug: Debugging functionality for Ruby を使って、Dockerコンテナ上で起動したプログラムをデバッグする 参考 Ruby 3.1 の debug.gem を自慢したい - クックパッド開発者ブログ 方法 各環境で下のようなコマンドを実行する。 このとき、利用したいコンテナ側のポートを公開しておく。 # コンテナ側 $ rdbg -O --host=0.0.0.0 --port={任意のポート} main.rb # ホスト側 $ rdbg -A localhost {任意のポート} サンプル 準備 # 構成 $ tree app app └── main.rb main.rb a = 1 b = 2 puts a puts b c = a + b puts c c += 3 puts c 検証 コンテナ側 # コンテナを起動 $ docker run -it -p 1234:1234 -v $PWD/app:/app --rm ruby:3.0.3-bullseye /bin/bash # コンテナ内 ## debugをインストール $ gem install debug ## debugの起動 $ cd /app $ rdbg -O --host=0.0.0.0 --port=1234 main.rb DEBUGGER: Debugger can attach via TCP/IP (0.0.0.0:1234) DEBUGGER: wait for debugger connection... DEBUGGER: Connected. 1 2 3 6 DEBUGGER: Disconnected. ホスト側 $ rdbg -A localhost 1234 [1, 8] in main.rb => 1| a = 1 2| b = 2 3| puts a 4| puts b 5| c = a + b 6| puts c 7| c += 3 8| puts c =>#0 <main> at main.rb:1
  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

M1 MacのDockerでnativeのarm 64版 MySQL Server 8動くよ

M1 MacのDockerでMySQLを動かすとき、x86 emulator機能を使う記事が多いですが、MySQL 8.0はarm64にも対応しているのでmysql/mysql-server:8.0を使うと軽く動かせます。 デフォルト設定ではlocalhostからしか接続できないので、docker-compose.ymlでは下記のようにMYSQL_ROOT_HOSTを指定してそれを回避しています。 docker-compose.yml mysql: image: mysql/mysql-server:8.0 environment: MYSQL_ROOT_PASSWORD: "passwd" MYSQL_ROOT_HOST: '%' # https://zenn.dev/ryo_kawamata/articles/mysql-connect-error
  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

Django + Dockerの構築から開発まで〜Docker構築編〜

はじめに 自分の備忘録として、同じようなところで詰まっている人向けとして書こうと思いました。 開発はまだどんなアプリを作るかは漠然としかないのでこれからやっていきながらゆる〜く書いていきます。 環境 ・OS: Mac ・Docker Desktop   Docker version 20.10.7   docker-compose version 1.29.2 エディタはVScodeを使っています。 環境構築 Dockerの構築こちらの記事を参考に作りました。 https://qiita.com/bakupen/items/f23ce3d2325b4491a2dd#%E9%96%8B%E7%99%BA%E7%92%B0%E5%A2%83%E3%82%92%E6%A7%8B%E7%AF%89%E3%81%99%E3%82%8B 詰まったところ 上記の環境構築のところで、エラーがいくつか出てきて解決したので書いておきます。 1.Dockerfile 以下のコマンド $ docker-compose run web django-admin.py startproject djangopj . を打った時に、以下のエラーが出てきました。 zsh Traceback (most recent call last): File "compose/cli/main.py", line 81, in main File "compose/cli/main.py", line 203, in perform_command File "compose/metrics/decorator.py", line 18, in wrapper File "compose/cli/main.py", line 968, in run File "compose/cli/main.py", line 1426, in run_one_off_container File "compose/project.py", line 664, in up File "compose/service.py", line 364, in ensure_image_exists File "compose/service.py", line 1111, in build File "compose/service.py", line 1841, in build compose.service.BuildError: (<Service: web>, {'message': 'dockerfile parse error line 1: FROM requires either one or three arguments'}) During handling of the above exception, another exception occurred: Traceback (most recent call last): File "docker-compose", line 3, in <module> File "compose/cli/main.py", line 92, in main TypeError: can only concatenate str (not "dict") to str [89456] Failed to execute script docker-compose 解決方法 Dockerfileの1行目の FROM python:3 以降に空白が入っていたことが原因でした。 なので、Dockerfile・docker-compose.yml・requirements.txt全てを以下のように変更してもう一度 $ docker-compose run web django-admin.py startproject djangopj . を実行するとできました。 Dockerfile FROM python:3 ENV PYTHONUNBUFFERED 1 RUN mkdir /code WORKDIR /code COPY requirements.txt /code/ RUN pip install --upgrade pip && pip install -r requirements.txt COPY . /code/ docker-compose.yml version: '3' services: db: image: mysql:5.7 environment: MYSQL_ROOT_PASSWORD: root MYSQL_DATABASE: django-db MYSQL_USER: django MYSQL_PASSWORD: django TZ: 'Asia/Tokyo' command: mysqld --character-set-server=utf8 --collation-server=utf8_unicode_ci web: build: . command: python3 manage.py runserver 0.0.0.0:8000 volumes: - .:/code ports: - "8000:8a000" depends_on: - db requirements.txt Django==3.1 mysqlclient 2.起動 最後にサービスを起動させようと、 $ docker-compose up -d を打ったところ、 sample-pj_db_1 is up-to-date Starting sample-pj_web_1 ... Starting sample-pj_web_1 ... error ERROR: for sample-pj_web_1 Cannot start service web: driver failed programming external connectivity on endpoint sample-pj_web_1 (363f0e70a5a24e61cb50bd873c1f037dbb675f908f9f3ed530e5a348406a60fe): Bind for 0.0.0.0:8000 failed: port is already allocated ERROR: for web Cannot start service web: driver failed programming external connectivity on endpoint sample-pj_web_1 (363f0e70a5a24e61cb50bd873c1f037dbb675f908f9f3ed530e5a348406a60fe): Bind for 0.0.0.0:8000 failed: port is already allocated ERROR: Encountered errors while bringing up the project. というエラーが出てきました。 試したこと $ sudo lsof -i:8000 を打つと何か出てきたので、 $ sudo kill 8000 をしましたが、 kill: 8000: No such process と出てきてできませんでした。 解決方法 $ docker ps を打つと、 CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 034a983e91a4 mysql:5.7 "docker-entrypoint.s…" 22 minutes ago Up 22 minutes 3306/tcp, 33060/tcp sample-pj_db_1 373f2f6bfffc restaurant_web "python3 manage.py r…" 5 weeks ago Up 4 weeks 0.0.0.0:8000->8000/tcp, :::8000->8000/tcp restaurant_web_1 8e747bef142f mysql:5.7 "docker-entrypoint.s…" 5 weeks ago Restarting (1) 10 seconds ago restaurant_web と出てきたので、 $ docker stop 373f2f6bfffc $ docker stop 8e747bef142f をしてから、 $ docker-compose up -d をすると、できました! おわり 今日はここまでとします。
  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

SpringBoot+KotlinでWebアプリ開発からDockerでのビルドまで

概要 Spring Boot + Kotlinで簡単なWebアプリケーションを作り、Dockerイメージにビルドする方法を記載します。 Webアプリケーションの開発 プロジェクトファイルの準備 spring initializrへアクセスし、以下の画面キャプチャのように設定してGENERATEボタンを押下することでプロジェクトを作成します。 Gradle Project Kotlin Jar Java 11 Dependencies Spring Web Thymeleaf ダウンロードしたプロジェクトファイルをunzipし、インストールしておいたIntelliJ IDEAのFile > Openから開きます。 コーディング 以下のKotlinファイルを作成します。 demo/src/main/kotlin/com.example.demo/Controller.kt package com.example.demo import org.springframework.stereotype.Controller import org.springframework.ui.Model import org.springframework.web.bind.annotation.GetMapping import org.springframework.web.bind.annotation.RequestMapping @Controller class Controller { @GetMapping("/demo") fun index(model: Model): String { model.addAttribute("message", "Hello World!") return "index" } } 上記のコードは/demoのパスにアクセスした際に、return "index"で指定したindex.htmlのファイルが表示されるように紐づけています。 また、model.addAttributeで指定したmessage属性の値Hello World!がindex.htmlへ渡されることになります。 続いて、index.htmlを作成しましょう。 demo/src/main/resources/templates/index.html <!DOCTYPE html> <html lang="en" xmlns:th="http://www.w3.org/1999/xhtml"> <head> <meta charset="UTF-8"> <title>Hello World!!</title> </head> <body> <p th:text="${message}"></p> </body> </html> 上記HTMLファイルでは、<p th:text="${message}"></p>の部分で、model.addAttributeにて指定した属性値を取得しています。 Webアプリの起動 シェルにて以下のコマンドを実行することでWebアプリが起動します。 $ ./gradlew bootRun なお、IntelliJのUIからもアプリを起動することは出来ます。 起動したWebアプリの画面 ブラウザにてlocalhost:8080/demoにアクセスすることで以下の応答が得られます。 Dockerイメージのビルドおよび起動手順 Boot SpringのProject直下に以下のDockerfileを作成する。 ※gradlew bootJarではなくgradlew buildを記述してしまうと、*-plain.jarが生成されてしまいdocker buildに失敗します。 Dockerfile FROM adoptopenjdk/openjdk11:alpine VOLUME /tmp RUN mkdir /work COPY . /work WORKDIR /work RUN /work/gradlew bootJar RUN mv /work/build/libs/*.jar /work/app.jar ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/work/app.jar"] シェルで以下のコマンドを実行することで、Dockerイメージの作成および実行が完了します。 bash $ docker build --no-cache -t <image name> . $ docker run -p 8081:8080 <image name> 参考 Dockerイメージのビルドでは、以下の記事を参考にさせてもらいました。以下の記事のやり方ではNo such file or directoryのエラーによってDockerイメージのビルドに失敗してしまったため本記事ではその修正対応を行っております。 修正対応したエラー内容 mv: can't rename '/work/build/libs/<project name>-plain.jar': No such file or directory mv: can't rename '/work/build/libs/<project name>.jar': No such file or directory The command '/bin/sh -c mv /work/build/libs/*.jar /work/app.jar' returned a non-zero code: 1
  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

【Docker Compose】別プロジェクトでも同じディレクトリ名だとコンテナが置き換わってしまう話

参考 https://qiita.com/hiroism/items/833170159d1d57a20e41 https://stackoverflow.com/questions/62969110/compose-up-recreating-the-compose-service-created-by-other-directories 問題発生 開発用DBを用意するため、docker-compose.ymlで以下のような記述をしてdb/フォルダ内でdocker-compose up -dをした myapp2/db/docker-compose.yml version: '3' services: mysql: image: mysql:5.7 container_name: mysql_myapp2 environment: MYSQL_ROOT_PASSWORD: root MYSQL_DATABASE: myapp2 MYSQL_USER: user MYSQL_PASSWORD: root volumes: - ./docker/db/data:/var/lib/mysql - ./docker/db/my.cnf:/etc/mysql/conf.d/my.cnf restart: always ports: - 3307:3306 container_nameを独自のものにしていたため、独立して新しくコンテナが作られると思っていた。 しかし、同時に別プロジェクト同じフォルダ名(db)で以下のdocker-compose.ymlでDBを起動していた。 myapp1/db/docker-compose.yml version: '3' services: mysql: image: mysql:5.7 container_name: mysql_myapp1 environment: MYSQL_ROOT_PASSWORD: root MYSQL_DATABASE: myapp1 MYSQL_USER: user MYSQL_PASSWORD: root volumes: - ./docker/db/data:/var/lib/mysql - ./docker/db/my.cnf:/etc/mysql/conf.d/my.cnf restart: always ports: - 3306:3306 container_nameが別なので別のコンテナが作成され、新規のコンテナ(mysql_myapp2)と共存するものかと思っていた。 しかし、docker-compose up -dをすると、以前(myapp1)のコンテナが消され、置き換わってしまった!!!!!!!!!! これは困った。 原因 上記参考リンクにある通りだが、原因はプロジェクト名(フォルダ名)の衝突にあるらしいことがわかった。双方ともdb/配下にdocker-compose.ymlを配置していたため。 ここではプロジェクト名を指定していないのでdbがプロジェクト名とされ、その衝突によってcontainerのrecreateが発生しているようである。 対処 プロジェクト名を-pオプションで指定する ディレクトリ名をdb/から変える 結論、私は2の方法でdb-> myapp-dbというディレクトリ名に変えることによって解決した。 プロジェクト名を指定するのもよいが起動時に毎回それやるのが面倒なので(envファイルに書けばいいというのはある)。 感想 container_name違うんだから別コンテナ扱いしてくれないのなんで??わからない。
  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

【windows】「docker」「docker-compose」コマンドを省略しよう

前置き 毎回打つのが地味に手間なdockerコマンド。 「docker」→「d」 「docker-compose」→「dc」 と省略設定をしてみたいと思います。「d ps -a」「dc up -d」などとコマンドが打てるようになります。 windowsのDOSKEYコマンドを利用することで、コマンドに対してエイリアス(別名)を付ける事ができます。 「dir」コマンドをlinuxのように「ls」と設定するにはコマンドプロンプトで doskey ls=dir と入力すればlsが使えるようになります。 dockerコマンド省略 同じようにdocker,docker-composeそれぞれにエイリアス設定(=名前をつける)が可能です。 doskey d=docker $* doskey dc=docker-compose $* $*は引数受け取りを意味します。下記が使えるようになりました。 d ps -a dc up -d 「dc」だと「cd」と混同しますね? 適宜お好きに名付けてください。 ただし、この設定は永続的なものではなく。コマンドプロンプトを閉じると使えなくなってしまいます。 エイリアスの永続化 windowsの仕様上泥臭い方法になるのですが、doskeyを入力後ファイルに書き出し、出力したマクロファイルを毎度読み込ませるという形で事実上の永続化を行います。 まずエイリアス設定。 doskey d=docker $* doskey dc=docker-compose $* ユーザディレクトリに「macros.txt」として出力。「%USERPROFILE%」とはカレントユーザディレクトリのこと。保存場所は適宜変えてください doskey /macros > %USERPROFILE%\macros.txt マクロ読み込みコマンド doskey /macrofile=%USERPROFILE%\macros.txt これをコマンドプロンプト起動時に毎度打ち込めばエイリアスが使えます。 ただ毎回手打ち入力してらん無いんで、コマンドライン引数として実行させる必要があります。方法は2つ。 1. cmd.exeのショートカット作ってコマンドライン引数に指定 一番お手軽・安全。cmd.exeの後ろに半角スペース入れて上記をペースト。 /k "doskey /macrofile=%USERPROFILE%\macros.txt" ただし作ったショートカットから毎回開かないエイリアスが適用されない。 レジストリ値設定 この方法だと全体にalias設定が可能です。 レジストリ エディターを開いて、 HKEY_LOCAL_MACHINE\Software\Microsoft\Command Processor HKEY_CURRENT_USER\Software\Microsoft\Command Processor のどちらかを探し、右クリック>新規>文字列値 名前を AutoRun 値を doskey /macrofile=%USERPROFILE%\macros.txt として保存するだけでOK ※ちなみにConEmu/Cmderでの設定①とほぼ同じ。&で繋いで下記入力して適用押す。 /k "doskey /macrofile=%USERPROFILE%\macros.txt" 「無効なマクロ定義です。」と表示される場合は 無効と言われるのに設定したエイリアスは使えるという現象が起きました。意味不明に doskey /macros > %USERPROFILE%\macros.txt で出力後、一度cmd.exeを閉じてもう一度cmd.exeを開き、 doskey /macrofile=%USERPROFILE%\macros.txt を入力、①で作ったショートカットで開くとこの表示はなくなりました。 この現象ググっても全然出てこない・・ 詳しい方いましたらコメントください 参考 https://windows.command-ref.com/cmd-doskey.html http://piyopiyocs.blog115.fc2.com/blog-entry-878.html https://blog.kunst1080.net/post/2015/12/01/221724/ https://qiita.com/RoaaaA/items/694ae4ccfa4a69fc8286
  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

AWS CLI v2の公式Dockerイメージのセットアップ方法

概要 初投稿です。 aws-cli公式Dockerイメージを利用することで、Dockerのインストールのみでaws-cliを使用できます。 しかし、簡潔なセットアップ方法の記事が見つけられないので作りましました。 前提条件 Linux OS(shellが使えれば他のOSでもOK) Dockerをインストール済み 1.「.aws」ディレクトリの作成 下記のコマンドを実行し、「.aws」ディレクトリおよび認証ファイルを作成する cd ~ mkdir ~/.aws && touch ~/.aws/credentials && touch ~/.aws/config 続いて、それぞれのファイルを下記のとおりに編集する ~/.aws/credentials [default] aws_access_key_id=AKIAIOSFODNN7EXAMPLE aws_secret_access_key=wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY ※記載されているキーはAWS公式のサンプルなので、そのままコピペしても動きません。 ※配布された自分のアクセスキーとシークレットキーを設定しましょう。 ~/.aws/config [default] region=ap-northeast-1 output=json 2.aws-cliの実行 下記のコマンドを実行し、動作確認を行う。 docker run --rm -it amazon/aws-cli --version 下記のような表示がされればOK aws-cli/2.4.11 Python/3.8.8 Linux/4.19.104-microsoft-standard docker/x86_64.amzn.2 prompt/off 続いて、下記のコマンドを実行し、「.aws」ディレクトリが正しくマウント出来ていることを確認する。 docker run --rm -it -v ~/.aws:/root/.aws amazon/aws-cli sts get-caller-identity 下記のように表示されれば、設定完了。 { "UserId": "AIDAXXXXXXXXXEXAMPLE", "Account": "XXX", "Arn": "arn:aws:iam::XXX:user/XXX" }
  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

Laravel + Docker の環境で、PostgreSQLに接続するためにやったこと

はじめに docker-composeを使用してLaravelの環境を構築し、PostgreSQLに接続するためにやったことを備忘録としてまとめておきます。 なお、docker-composeを使用したLaravelの環境は、下記の記事を参考に構築しました。 Dockerを使ってLaravelのローカル開発環境を作る(Apache版) ファイルパスなどは少し変更している箇所がありますので、ご自分の環境に合わせて読み換えてください。 環境 OS: MacOS Big Sur Docker: 20.10.11 docker-compose: v2.2.1 やったこと 下記の二つを行いました。 環境変数 DB_CONNECTION の値を変更 コンテナ内に、PHPの拡張機能 pdo_pgsql をインストール 以下で詳しく説明していきます。 環境変数 DB_CONNECTION の値を変更 Laravelで使用するDBを設定しているのは、config/database.php ファイル内の下記の箇所になります。 config/database.php(一部) 'default' => env('DB_CONNECTION', 'mysql'), Laravelの env() 関数は、第一引数で取得する環境変数の値を指定し、第二引数にデフォルト値(環境変数に第一引数で指定した値がない場合の値)を指定することができます。(参考) そのため、MySQL以外のDBを使用したい場合は、環境変数 DB_CONNECTION に何かしらの値を設定する必要があります。(参考) 今回はPostgreSQLを使用したいので、pgsql を設定します。 コンテナ内の環境変数の設定は、docker-compose.yml ファイル内で行っているので、そこに追記します。 docker-compose.yml(一部) version: "3.8" services: web: build: context: . dockerfile: ./docker/app/Dockerfile ports: - ${WEB_PORT:-80}:80 volumes: - ./src:/work/src environment: - DB_CONNECTION=pgsql # ここを追記 コンテナ内に、PHPの拡張機能 pdo_pgsql をインストール Laravelでは、PHPの拡張機能であるPDOを使用してDBを操作していますが、PDOは使用するデータベースのドライバをインストールしなければ動きません。 そのため、コンテナ起動時に docker-php-ext-install コマンドを使用して pdo_pgsql をインストールします。(pdo_pgsqlについてはこちら) 加えて、pdo_pgsql は、libpq-dev パッケージが必要なので、こちらもインストールします。(参考) 上記処理を Dockerfile に記述します。 docker/app/Dockerfile FROM php:7.4-apache SHELL ["/bin/bash", "-oeux", "pipefail", "-c"] ENV COMPOSER_ALLOW_SUPERUSER=1 \ COMPOSER_HOME=/composer COPY --from=composer:2.0 /usr/bin/composer /usr/bin/composer RUN apt-get update && \ apt-get -y install git unzip libzip-dev libicu-dev libonig-dev postgresql libpq-dev && \ apt-get clean && \ rm -rf /var/lib/apt/lists/* && \ a2enmod rewrite && \ docker-php-ext-install intl pdo_pgsql zip bcmath COPY ./docker/app/php.ini /usr/local/etc/php/php.ini COPY ./docker/app/httpd.conf /etc/apache2/sites-available/000-default.conf WORKDIR /work/src
  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む