LoginSignup
0
0

More than 3 years have passed since last update.

Dockerfile、docker-compose.ymlを作ってwindows10、Linux、ラズパイでnodejsを動かす

Posted at

以前書いた下記、記事の続きでDockerfileとdocker-compose.ymlを作って、動かす手順まで今回記載します。
https://qiita.com/MCYamamoto/items/4d424af9573fa90edf61

最終的なフォルダ構成

まず、最終的なフォルダ構成です。
下記のようになります。

baseフォルダ
+docker-compose.yml
+cont
 +env
  +Dockerfile
   +deploy //デプロイ対象のソースコード(今回はnodejs)
    +package.json
    +package-lock.json
    +build
     +jsファイルたち
  +share //ホストとコンテナの共有フォルダ

Dockerfileをつくる

[参考URL]
https://qiita.com/pottava/items/452bf80e334bc1fee69a

全体的な流れとしては、上記を参考にした。
インストール必要なものをインストールしながらコマンドをメモして、最終的なDockerfileを作るというもの。

1. Dockerイメージを決める。

ラズパイはARMのため、ARMに対応したイメージとしてDebianにした。
[参考URL]
https://qiita.com/koduki/items/0ed303dac5d32646194f

2. bashのコンテナを起動する。


$ sudo docker run -it -v $(pwd):/tmp/share debian:buster /bin/bash
-it:ターミナルで操作可能に
-v:コンテナとのフォルダ共有

3. 必要なものをインストールする。

動かしたいプログラムによって必要なパッケージをインストールする。

apt-get install パッケージ名

といった感じです。

なお、注意点としては、Dockerfileに書く場合はインストールを止めないため"-y"オプションが必要です。

最終的にはnodeとsqliteしか必要なかったので、コンテナイメージをnodeにしてしまう方が良いのですが、
過程を残すということで、最終的にできたのは下記になります。

やっていることとしては、下記になります。
- deploy対象のコードをコピー
- 必要なものをOSにインストール
- deployフォルダ配下のnodeに必要なパッケージを「npm install」でインストール

#Dockerfile

FROM debian:buster

COPY deploy/ /home/deploy
WORKDIR /home/deploy

RUN apt-get update
RUN apt-get install -y cmake
RUN apt-get install -y libssl-dev
RUN apt install curl
RUN apt-get install -y sqlite3 libsqlite3-dev
RUN apt-get install -y nodejs npm && npm install n -g && n 12.18.4
RUN npm install

docker-compose.ymlをつくる

先ほど作ったDockerfileをコンテナイメージとして、最終的にdeployフォルダ配下のnodeが自動起動するものにしました。
<補足>

version: "3.8"
services:
  cont:
    build:
      context: ./cont/env
      dockerfile: Dockerfile
    container_name: CONT-1
    tty: true
    volumes:
      - "./cont/env/share:/tmp/share"
      - ".:/workspace"
      - "./cont/env/deploy/build:/home/deploy/build"
    working_dir: /home/deploy/build
    command: npm run start

<補足>
package.jsonに下記記載して、buildフォルダ配下のプログラムが動くようにしています。

  "scripts": {
    "start": "node ./build/main.js",
  },

docker-compose起動

作成したフォルダ環境一式を各OS(Windows10、Linux、Raspi)の任意のフォルダに配置して下記実行すると、すべて同じ動きします。

sudo docker-compose up --build

(おまけ)Vscodeでのデバッグ環境作る

[参考URL]
https://tech-lab.sios.jp/archives/21675
https://qiita.com/Yuki_Oshima/items/d3b52c553387685460b0

Visual Studio Code 上でf1メニューまたは左下に現れる緑色のアイコンをクリックして「Remote-Containers: Open Folder in Container...」を選択し、docker-compose.ymlがあるフォルダを選択すると
しばらくするとコンテナが実行され、コンソールでデバッグ操作できます。

vscode、docker便利、、

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