gba-3のメモ

てきとー

sudoなしでDockerコマンドを使う

はじめに

毎回Dockerを使用するたびにsudoをつけるのはとてもめんどいですよね。

なのでsudoなしでDockerコマンドを使用するための設定を調べてみました。

設定

使用しているユーザをDockerグループに所属させることでroot権限を使わずにDockerコマンドを使用できるようになります。

今回の例ではユーザをuser1とします。

Dockerグループが存在しているかを確認します。

$ sudo vim /etc/group
省略
docker:x:999:user1

Dockerグループが存在しない場合、groupaddを用いてグループを作成します。

$ sudo groupadd docker

ユーザをグループに所属させます。

$ sudo usermod -aG docker user1

再起動すればsudoなしでDockerコマンドが使用可能になります。

参考文献

www.virment.com

DockerでVue.jsの環境構築

#環境
* Ubuntu18.04
* docker 18.09.5
* docker-compose 1.20.0
* vue.js 3.6.3

#環境構築
作業用のディレクトリを作成し、そこでdocker-compose.ymlとDockerfileを作成します。
###docker-compose.yml

```
version: "3"
services:
app:
build:
context: ./
privileged: true
volumes:
- "./:/usr/share/nginx/html"
ports:
- 1234:8080
- 3000:3000
container_name: "vuecontainer"
```

###Dockerfile
```
FROM ubuntu:18.04

RUN apt -y update

RUN apt -y upgrade
RUN apt -y install curl
RUN apt -y install nginx

RUN apt install -y nodejs npm
RUN npm install n -g
RUN n stable
RUN apt purge -y nodejs npm

RUN npm install -g @vue/cli

ENV HOST 0.0.0.0

CMD ["nginx", "-g", "daemon off;"]

WORKDIR /usr/share/nginx/html

```

###サービス構築
今回のサービスの名前は「app」になる
```docker-compose.yml```のservicesの```app```のところがサービス名となる

```
$ sudo docker-compose build
```

###コンテナ起動
コンテナを作成し、起動します。

```
$ sudo docker-compose up -d
```
-dをオプションでつけることでバックグラウンドで実行することができます。

###コンテナに入る
以下のコマンドを使うことで指定のコンテナ内に入ることができます。

```
$ sudo docker-compose exec サービス名 実行コマンド
```
今回の場合では以下のコマンドでコンテナ内に入ることができます。

```
sudo docker-compose exec サービス名 実行コマンド
```

コンテナ内で以下のコマンドを入力することでvue.jsのプロジェクトを作成できる。

```
vue create プロジェクト名
cd プロジェクト名
npm run serve
```

これで http://localhost:1234 にアクセスするとデフォルト画面が表示されれば環境構築終了

#参考文献
[Dockerでローカル環境を汚さずにNuxt.jsを始めてみる](https://qiita.com/ProjectEuropa/items/d9ee1b8c96084e3bab55)
[Ubuntuに最新のNode.jsを難なくインストールする](https://qiita.com/seibe/items/36cef7df85fe2cefa3ea)

Djangoでtwitterのログインを実装

Djangotwitterログイン機能を実装する

実装

環境  Python 3.6.1  Django 2.0.3

下記のコマンドでパッケージをインストール


pip install social-auth-app-django

setting.pyに以下を追記する

INSTALLED_APP = [
    ・・・
    'social_django',
    ・・・
]
TEMPLATES = [
    {
        ・・・
        'OPTIONS': {
            'context_processors': [
                ・・・
                'social_django.context_processors.backends',
                'social_django.context_processors.login_redirect',
            ],
        },
    },
]
LOGIN_REDIRECT_URL = ログイン後のページ
SOCIAL_AUTH_TWITTER_KEY = クライアントID
SOCIAL_AUTH_TWITTER_SECRET = クライアントシークレット

AUTHENTICATION_BACKENDS = (
    'social_core.backends.twitter.TwitterOAuth',
    'django.contrib.auth.backends.ModelBackend',
)

INSTALLED_APPSを追加したのでmigrateする

urls.pyに以下を追記する

urlpatterns = [
    
    path('',include('social_django.urls')),
]

ログイン機能を追加したいテンプレートに以下を記入

<a href="{% url 'social:begin' 'twitter' %}">Login with Twitter</a>

Callback URLのチェック対策

https://apps.twitter.com/ 上のURLでCallback URLという項目があるのでそれをSettingsで再設定する

Callback URLのところをhttp://127.0.0.1:8000/complete/twitter/ と入力する

これでログイン機能は完成