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?

【タスク管理】なけりゃ作ればいいじゃない【#1】

0
Posted at

まず初めに

いつぶりに開いただろうか、このQiita。
競馬の予想AIを作るといったきり結局、熱が尽きて
何もしなかったという悲しいオチ

ただ今回に関しては関しては本気でやりたいと思っている。
今回、開発の予定物はタスク管理ツール。

今回の開発に至ったワケ

今回の開発はなぜ本気でやりたいのかというと、
タスク管理ツールに不満があるから。

これに尽きる。いやまじで

ガントチャートベースのexcelで管理をしているが、
これがまた使いにくい。
フィルターが使いにくいだとかなんとかいろいろ文句があり、
このツール開発に乗り出した。

今回の開発でやりたいこと

  • Dockerを使って、環境構築から実際の開発までやること
  • SQLCipherに触れてみること
  • PythonでGUIアプリを作ってみること

大きくはこの3つかなと、他にも色々考えていることは
ありつつもこれらが優先だと思っている。

では早速、環境構築

まずは環境構築というところで、Dockerをインストールしていく。

ダウンロードは下記URLから

今回はWindowsでの開発・利用想定なので、Windows x64版をダウンロード

そもそもDockerって、なんやねんっていうのは、
自分もあまりわかっていないが、PC本体の環境に
影響を与えないように仮想環境を作ってその中で、
開発ができる程度の認識。(あっているかもわからん)

Dockerの解説は、先人がいっぱいやってくれているので、
そちらを読むこととしよう。

ダウンロードが終わったら、早速インストールしていく。

インストーラーのチェックデフォルトのままでインストールしとくのが安牌かな・・・?

インストール後PCを再起動して、Dockerを起動。
WSLのインストールを促されるのでインストールする。
Windows上でLinuxを動作させるための機能らしい。
そういう機能が搭載されたというのは聞いていたが、
実際に使うことになるとは。

WSLのインストールが終わったらDockerの起動を待つ。

正直、Dockerわからんすぎてこの時点で
めちゃ悩んだのは秘密

minicondaの環境をdocker上につくる

まずはDドライブ辺に適当なworkフォルダを作る
今回のパスはこんな感じで

D:\Work\TASK_MANAGE

TASK_MANAGEフォルダ上に「Dockerfile」という名前の
ファイル(拡張子も消しておく)を作成する

FROM ubuntu:24.04

# 環境変数の設定
ENV PATH=/opt/conda/bin:$PATH \
    SHELL=/bin/bash \
    DEBIAN_FRONTEND=noninteractive \
    TZ=Asia/Tokyo

# システムパッケージのインストール
RUN apt-get update && apt-get upgrade -y && \
    apt-get install -y python3 python3-pip python3-dev wget curl git cmake gnupg software-properties-common build-essential && \
    rm -rf /var/lib/apt/lists/*

# Miniconda3のインストール
RUN wget https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh && \
    bash Miniconda3-latest-Linux-x86_64.sh -b -p /opt/conda && \
    rm Miniconda3-latest-Linux-x86_64.sh

# condaの初期設定
RUN /opt/conda/bin/conda init bash && \
    echo ". /opt/conda/etc/profile.d/conda.sh" >> /root/.bashrc

# 【修正】利用規約(ToS)への同意を追加し、環境を一括作成
RUN /opt/conda/bin/conda tos accept --override-channels --channel https://repo.anaconda.com/pkgs/main && \
    /opt/conda/bin/conda tos accept --override-channels --channel https://repo.anaconda.com/pkgs/r && \
    /opt/conda/bin/conda create -n dev python=3.12 numpy pandas matplotlib scikit-learn jupyter pylint pytest black -c defaults -y && \
    echo "conda activate dev" >> /root/.bashrc

# Jupyterの設定
RUN mkdir -p /root/.jupyter && \
    /opt/conda/envs/dev/bin/jupyter notebook --generate-config && \
    echo "c.ServerApp.ip = '*'" >> /root/.jupyter/jupyter_notebook_config.py && \
    echo "c.ServerApp.port = 8888" >> /root/.jupyter/jupyter_notebook_config.py && \
    echo "c.ServerApp.allow_root = True" >> /root/.jupyter/jupyter_notebook_config.py

# 作業ディレクトリの設定
WORKDIR /workspace

# Jupyterのポートを公開
EXPOSE 8888

# コンテナ起動時のコマンド
CMD ["bash", "-c", ". /opt/conda/etc/profile.d/conda.sh && conda activate dev && /opt/conda/envs/dev/bin/jupyter notebook --allow-root --ip=* --port=8888 --no-browser"]

どうやらDocker上でminicondaを使うにはubuntuのインストールが必要らしい

このDockerfileをイメージ化するコードは以下

docker build -t Akihisa/dev:1.0 -f Dockerfile ./

イメージの名前「Akihisa/dev」と
タグ「:1.0」がどうも必須らしい

このイメージの作成に数時間かかった。
そもそも参考元のところに辿り着くまでに、
いろいろなところを行脚し、失敗しを繰り返し、
ここに至る。

参考にしたサイトは下記に記載するが、
参考元の内容では素直にインストールできなかったので、
Geminiにエラーを投げつけると、

TOSに同意してないであかんやでと
なんやそれ・・・知らん。

が、賢いGeminiはDockerfileを直してくれたので、
それをそのまま使わせてもらった。

そのままDockerのGUI上からイメージを選んで
「RUN」をクリックするととりあえず、コンテナの
作成までたどり着けた

これ、素人が手を出していいもんなんやろか・・・の気持ちである

まあでも、とりあえずコンテナまで作れて実行環境は得られたので、
今日はここまで

次回予告的な

次回は、作ったコンテナにリモートアクセスして、
pythonのコードを実行できるようにするところを
整備したいと思う。

ほなまた(^^)/~

参考文献・サイトなど

Docker入門:インストールと基本操作 作成者:金子邦彦
miniconda+conda-forgeでの開発環境をDockerでそろえる
docker環境にツールを導入していくためのベースイメージを作る。
Dockerがわからない人へ。これ1本で0から学べる丁寧な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

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?