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コマンドが使用可能になります。
参考文献
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のログインを実装
実装
下記のコマンドでパッケージをインストール
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/ と入力する
これでログイン機能は完成