技術をかじる猫

適当に気になった技術や言語、思ったこと考えた事など。

TestLink を弄ってみる

  1. 適当に C:\workspace\projects\docker\testlink この辺にディレクトリを掘る
  2. そこに mariadb_data, testlink_data ディレクトリを掘る
  3. docker-compose.yml を作成して後述を記述
  4. docker-compose up -d で起動(ただし完了までそこそこ時間がかかる)
version: '2'

services:
  mariadb:
    image: 'bitnami/mariadb:latest'
    environment:
      - ALLOW_EMPTY_PASSWORD=yes
      - MARIADB_USER=bn_testlink
      - MARIADB_DATABASE=bitnami_testlink
    volumes:
      - 'C:\workspace\projects\docker\testlink\mariadb_data:/bitnami'
  testlink:
    image: 'bitnami/testlink:latest'
    environment:
      - TESTLINK_DATABASE_USER=bn_testlink
      - TESTLINK_DATABASE_NAME=bitnami_testlink
      - ALLOW_EMPTY_PASSWORD=yes
    ports:
      - '80:80'
      - '443:443'
    volumes:
      - 'C:\workspace\projects\docker\testlink\testlink_data:/bitnami'
    depends_on:
      - mariadb

因みに、ここで嵌ったのが、ノートン先生の問題。
どうもこのノートン先生はDockerコンテナ同士の通信を阻害するものらしい。

そのため、以下の設定を行った。

gfonius.net

確かにこれで、コンテナの起動に失敗することは無くなったのだが、起動中に php のインストールで停止するらしい。
apache のインストールまでは行ってるので、通信内容を見て勝手に遮断してるのかも知れないが、結局わからなかった。

結論から言うと、Windows やっぱ OSS やるのにうんごですわ…

Docker CLI で unauthorized: incorrect username or password で無駄に嵌ったのでメモ

Windows で Docker 入れると、Htper-V なんて他の共存を拒むクソアプリを入れざるを得なくなるので、Ubuntu16 のDualBootにしていたのだが、どうも DELL の XPS15 9560 と相性がよくないらしい。

  • ログイン時に固まる→コンソールで起動して、Nvidia ドライバ入れれば解決。
  • New アップデート後に Sleep → キー入力(多分Enterキー)が暴走して、ログイン不能に。

なんてクソッタレな状況に陥ったので、もういい加減切れて Ubuntu を削除。
VirtualBox すら諦めて(F○ck!!!!)Windows10 で開発しようと、Docker をインストールする。

そして、無事入ったと思ったら、まともにコンテナが起動しなかったので、対処も踏まえてメモ。

起こったこと

Docker イメージのダウンロード中に以下のエラーで止まる。

incorrect username or password.

一応、GUI上ではすべてログインしているように見える。
フォーラムを眺めたところ、コンソールは別にログインしなければならないらしいことが分かった。

コマンドラインでログインしかし罠だった

で、コマンドラインからログイン(dockerhub のログインに使用しているメアドでログイン)しようとして以下のエラー。

C:\workspace\projects\docker\redmine-jenkins-testlink>docker login
Login with your Docker ID to push and pull images from Docker Hub. If you don't have a Docker ID, head over to https://hub.docker.com to create one.
Username (XXXXXXXX@gmail.com):XXXXXXXX@gmail.com
Password:
Error response from daemon: Get https://registry-1.docker.io/v2/: unauthorized: incorrect username or password

Dockerhub のログイン画面で DockerID と書かれているものと全く同じものを入力してコレである。

f:id:white-azalea:20180715192653p:plain

再びフォーラムを検索してみたところ、「メールアドレスを使うんじゃない」 と言っている。

ハァ( ゚Д゚)ハァ?

結局

ログイン後に表示されるアカウントIDを入れたらログインできたという…

C:\workspace\projects\docker\redmine-jenkins-testlink>docker login
Login with your Docker ID to push and pull images from Docker Hub. If you don't have a Docker ID, head over to https://hub.docker.com to create one.
Username (XXXXXXX@gmail.com): xxxxxxxx
Password:
Login Succeeded

これは Dockerhub でログインした後の以下の部分

f:id:white-azalea:20180715193225p:plain

なんか本質以外でハメられると色々損した気分になる…

UEFI でデュアルブート設定した Ubuntu を削除する

といってもメモだが…
手順はこんな感じ。

qiita.com

cmd.exe を管理者権限で起動して操作します。
因みに、自分の環境(XPS15)だと list disk に反応はなく、list volume で参照したら存在した。
まぁ、1ディスクで二つ入ってるからなぁ

C:\Windows\system32>diskpart

Microsoft DiskPart バージョン 10.0.16299.15

Copyright (C) Microsoft Corporation.
コンピューター: DESKTOP-OFE415F

DISKPART> list volume

  Volume ###  Ltr Label        Fs    Type        Size     Status     Info
  ----------  --- -----------  ----  ----------  -------  ---------  --------
  Volume 0     C                NTFS   Partition    476 GB  正常         ブート
  Volume 1         回復           NTFS   Partition    499 MB  正常         非表示
  Volume 2                      FAT32  Partition    100 MB  正常         システム

DISKPART> sel volume=2

ボリューム 2 が選択されました。

DISKPART> assign letter=d:

DiskPart はドライブ文字またはマウント ポイントを正常に割り当てました。

あとはリンク先と変わりません。

あとは管理ツールから Linux パーティションを消して Windows 領域に統合すればおしまいです。

XPS15 に Ubuntu16.4 入れたはいいけど…

あれやこれの問題が起きたのでメモ

インストール

基本的にはここに書いてあるとおり。

qiita.com

なのだけど、ここには注記がある。

日本語プロジェクトから Ubuntu image を落として使ってはいけない という点。

何が起きるかというと、2018/04/08 時点では、Ubuntu のバージョンが若干古く、しかも「Wifi にバグを抱えたバージョン」であるようで、無線 LAN が息をせずに文鎮になりかけた。
英語 本家から落としてインストールすることで、これは事なきを得た。

起動したはいいがファンがうるさい

何が起きてたかというと、搭載の nvidia geforce 1050 が暴走でもしてるのかと思うくらい動きまわってた。
軽く探しまわってみたところ、どうにも Windows にだけ最適化してて、Ubuntu では微妙…とのこと。

そんなもんメインでぶん回せはうるさくなるのは当たり前だろう…ということで、眠らせる方法を探した。

$ prime-select query

というコマンドがあわかり、引数で query: 現在メイン稼働の GPU 表示。 intel: IntelGPU をメイン使用設定。nvidia: Geforce をメイン使用設定。ができることがわかった。 これで少しファンの音が小さくなった。

追記:やったら再起動後不安定になったという…普通に Htper-Vで入れた方がいい気がする

Docker(17.12.0) docker-compose 試してみた

と言っても言うほど難しい話ではなく、複数起動してたコンテナをスクリプトでまとめてやるだけの話。

docker-compose.yml を下記の様に記述。

version: '3.1'
services:
  wordpress:
    image: wordpress
    restart: always
    ports:
      - 8080:80
    environment:
      WORDPRESS_DB_PASSWORD: password
  mysql:
    image: mysql
    restart: always
    environment:
      MYSQL_ROOT_PASSWORD: password

そして同一ディレクトリ上で

$ docker-compose up 
Creating network "composeexample_default" with the default driver
Pulling mysql (mysql:5.7)...
5.7: Pulling from library/mysql
Digest: sha256:4f9323cb4aeca062fd1a341b50c7721b9aef6bff3ded806dec0897323b8b7be8
Status: Downloaded newer image for mysql:5.7
  # 中略
wordpress_1  | [Sun Feb 18 01:35:35.318708 2018] [mpm_prefork:notice] [pid 1] AH00163: Apache/2.4.25 (Debian) PHP/7.2.2 configured -- resuming normal operations
wordpress_1  | [Sun Feb 18 01:35:35.318781 2018] [core:notice] [pid 1] AH00094: Command line: 'apache2 -D FOREGROUND'

これでいちいちパラメータとか覚えなくて済むと言うのはとても楽でよい。

Docker(17.12.0) Dockerfile を使ってアプリケーションイメージを作成する

まずはデプロイするアプリケーションから。
これは Playframework のものを…

ってダメだお前…依存多すぎ DL 遅すぎ…。
今回試したいのは Play じゃないんだってば(汗

Dockerfile をまず作る。

$ vim Dockerfile
FROM ubuntu

# install python3
RUN apt-get update -y
RUN apt-get install python3 -y

# Create application dir
RUN mkdir /app
ADD index.html /app

# Start web server
WORKDIR /app

# Open port
EXPOSE 8000
CMD [ "python3", "-m", "http.server", "8000" ]

Python をさっさとインストールして、/app 配下で web サーバを 8000 ポートで立ち上げろという指示。
どーでもいいが、Ubuntupython は普通に 2.6 なんよね…Python3 インストールするとコマンドが python3 とかホントヤダ…

index.html はこんな感じでいいかね?

<html>
<body>
  <p>Simple message.</p>
</body>
</html>

という事でビルド

$ docker build -t example/python-web .
Sending build context to Docker daemon  3.072kB
Step 1/8 : FROM ubuntu
 ---> 0458a4468cbc
Step 2/8 : RUN apt-get update -y
 ---> Using cache
 ---> e804ebbf1b24
Step 3/8 : RUN apt-get install python3 -y
 ---> Running in 88714e60b80d
Reading package lists...
Building dependency tree...
Reading state information...
The following additional packages will be installed:
  中略
Step 7/8 : EXPOSE 8000
 ---> Running in da3dff3d02ea
Removing intermediate container da3dff3d02ea
 ---> 5d96e9b282c6
Step 8/8 : CMD [ "python", "-m http.server", "8000" ]
 ---> Running in 02858ca42d76
Removing intermediate container 02858ca42d76
 ---> 538e92c4647b
Successfully built 538e92c4647b
Successfully tagged example/python-web:latest

そして起動

$ docker run -p 8080:8000 --name py-web example/python-web

OK 起動した

f:id:white-azalea:20180217230019p:plain

Docker(17.12.0) Dockerfile からのイメージ作成

内容的には前回やった事を自動化する。

white-azalea.hatenablog.jp

だってこんなのイメージで持ち続けるって大変じゃね?
ってことで、スクリプトでイメージの作り方を指定するらしい。

XXXXXXXX$ cat Dockerfile 
FROM ubuntu

# Install requirements.
RUN apt-get update -y

# install ubuntu node
RUN apt-get install curl nodejs npm -y
RUN npm cache clean

# install n and nodejs stable
RUN npm install n -g
RUN n stable
RUN ln -sf /usr/local/bin/node /usr/bin/node

# remove ubuntu default node
RUN apt-get purge -y nodejs npm

ubuntu をベースに実行するコマンドを列挙しただけの簡易構成。

XXXXXXX$ docker build -t ubuntu-node .
Sending build context to Docker daemon  2.048kB
Step 1/8 : FROM ubuntu
 ---> 0458a4468cbc
Step 2/8 : RUN apt-get update -y
 ---> Running in 87ece63764c1
Get:1 http://security.ubuntu.com/ubuntu xenial-security InRelease [102 kB]
Get:2 http://archive.ubuntu.com/ubuntu xenial InRelease [247 kB]
Get:3 http://security.ubuntu.com/ubuntu xenial-security/universe Sources [58.7 kB]
Get:4 http://archive.ubuntu.com/ubuntu xenial-updates InRelease [102 kB]
Get:5 http://security.ubuntu.com/ubuntu xenial-security/main amd64 Packages [563 kB]
Get:6 http://archive.ubuntu.com/ubuntu xenial-backports InRelease [102 kB]
  中略
Removing intermediate container c06f58876486
 ---> 388c19df4ec2
Successfully built 388c19df4ec2
Successfully tagged ubuntu-node:latest

というログを吐いてビルド終了。
早速確認してみる。

XXXXXXX:nodeimg azalea$ docker image ls
REPOSITORY          TAG                 IMAGE ID            CREATED              SIZE
ubuntu-node         latest              388c19df4ec2        About a minute ago   562MB
wordpress           latest              ef4787e1820e        8 days ago           410MB
ubuntu              latest              0458a4468cbc        3 weeks ago          112MB
mysql               latest              f008d8ff927d        4 weeks ago          409MB
nginx               latest              3f8a4339aadd        7 weeks ago          108MB
hello-world         latest              f2a91732366c        2 months ago         1.85kB
XXXXXXX:nodeimg azalea$ 

無事 ubuntu-node イメージが出来上がった。

XXXXXXX$ docker run ubuntu-node node --version
v9.4.0

ひゃっはー