ノンカフェインであなたにやさしい

Ruby,Rails,HTML,CSS,Reactなど

docker-compose で Can't separate key from value と怒られた時の対応

Docker for Desktopをアップデートしたら以下のエラーが

$ docker-compose run
=> Can't separate key from value

Docker2をデフォルトで使う設定になってしまっているようなのでチェックを外し設定をオフにします。

f:id:kuronekopunk:20210728062017p:plain

stackoverflow.com

Rails consoleでrake taskを呼び出す

デバッグバッチ処理内でRake taskを呼び出したいときの対応

Rails.application.load_tasks
Rake::Task['my_task'].execute
# 引数を渡す場合
Rake::Task['my_task'].execute('arg_string')
Rake::Task['my_task'].execute(hoge: 'moge')

my_task には hoge:moge など rake hoge:moge と指定する名前が入ります。
他サンプルだと require 'rake' しているものもありますが rails c で入っている分には不要でした。

stackoverflow.com

WSL Docker Elasticsearchで max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144]

[1]: max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144]

PowerShellで以下を実行して解決

❯ wsl --shutdown # because we don't really need to restart the computer to see the config is lost ...
⚡ beccari@RAYGUN  ~                                                                                         [00:28]
❯ wsl -d docker-desktop cat /proc/sys/vm/max_map_count # current value
65530
⚡ beccari@RAYGUN  ~                                                                                         [00:28]
❯ wsl -d docker-desktop sysctl -w vm.max_map_count=262144
vm.max_map_count = 262144
⚡ beccari@RAYGUN  ~                                                                                         [00:28]
❯ wsl -d docker-desktop cat /proc/sys/vm/max_map_count 
262144
⚡ beccari@RAYGUN  ~                                                                                         [00:28]
❯

github.com

WordPress開発環境をwp-envで簡単に作る

npmの @wordpress/env を使うとメチャクチャ簡単にDockerでWP環境が作れました。
基本的に公式ドキュメント通りに設定するだけです。 ja.wordpress.org

@wordpress/env をインストール

# グローバルに入れるか
npm -g i @wordpress/env

# ローカルプロジェクトに入れる
npm i @wordpress/env --save-dev

WP環境の立ち上げ

wp-env start

おしまい

なんですが個人的に必要な設定など

入れておくと便利な設定

.wp-env.json に設定を書きます

{
  // ローカルのテーマを同期
  "themes": [ "./wordpress/wp-content/themes/my_themes" ],
  "mappings": {
    // テーマ以外に同期させたいフォルダ、ファイルの設定
    // アップロードしたファイルも同期させる
    "wp-content/uploads": "./wordpress/wp-content/uploads",
    // DBのDumpデータをインポートしたいので同期
    "import.sql": "./import.sql"
  },
  // 使いたいプラグインを入れる
  "plugins": [
    "https://downloads.wordpress.org/plugin/advanced-custom-fields.5.9.5.zip",
    "https://downloads.wordpress.org/plugin/no-category-base-wpml.zip",
    "https://downloads.wordpress.org/plugin/wp-pagenavi.2.93.4.zip",
    "https://downloads.wordpress.org/plugin/contact-form-7.5.4.zip",
    "https://downloads.wordpress.org/plugin/flamingo.2.2.1.zip",
    "https://downloads.wordpress.org/plugin/favicon-rotator.zip",
    "https://downloads.wordpress.org/plugin/all-in-one-seo-pack.4.1.0.1.zip",
    "https://downloads.wordpress.org/plugin/custom-post-type-ui.1.9.0.zip",
    "https://downloads.wordpress.org/plugin/taxonomy-terms-order.1.5.7.5.zip",
    "https://downloads.wordpress.org/plugin/custom-post-type-permalinks.3.4.4.zip",
    "https://downloads.wordpress.org/plugin/really-simple-csv-importer.zip",
    "https://downloads.wordpress.org/plugin/rs-csv-importer-media-addon.1.1.0.zip",
    "https://downloads.wordpress.org/plugin/tinymce-advanced.5.6.0.zip"
  ]
}

DBのインポート

npx wp-env run cli wp db import import.sql

GitHub ActionsでXserverにあるWPに自動デプロイを設定する

1.GitHubのSecretsにXserverの秘密鍵を登録する

公式を参考 docs.github.com

2..github/actions/deploy.yml 作成

name: deploy to xserver

on:
  push:
    branches:
      - main

jobs:
  deploy:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v2
      # 必要に応じてgulpなど
      # - name: gulp build
      #   uses: actions/setup-node@v1
      # - run: yarn install && yarn run build\
      - name: Install SSH key
        uses: shimataro/ssh-key-action@v2
        with:
          key: ${{ secrets.SSH_PRIVATE_KEY }}
          known_hosts: sv1111.xserver.jp
      - name: rsync deploy
        run: rsync -vrlp -e "ssh -p 10022 -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no" ./dist/ username@sv1111.xserver.jp:/home/username/example.net/public_html/dist/

参考