LoginSignup
0
0

<手順整理>Flyデプロイ

Last updated at Posted at 2023-08-13

概要

【PHP/Laravel】プログラミング初学者によるアプリケーション開発
https://qiita.com/AlpacaFace/items/b8e05a3da599815d8e31

上記トークアプリ開発のデプロイを説明します。

前提条件

  • GUI画面で以下を実施済みであること。
  • Fly.ioへユーザ登録
  • Fly.ioへログイン

手順整理 ターミナル操作

■対象ブランチの最新化

$ pwd
→ ~(任意の場所)~/joint_develop_docker/src/laravelapp

$ git branch
→ * (対象のブランチ名)

$ git pull origin (対象のブランチ名)

$ docker exec -it laravel_app bash

# ls
→ laravelapp

# cd laravelapp ; pwd
→ /var/www/html/laravelapp

# php artisan migrate:fresh --seed
Dropped all tables successfully.
Migration table created successfully.
Migrating: 2014_10_12_000000_create_users_table
Migrated:  2014_10_12_000000_create_users_table (0.18 seconds)
Migrating: 2014_10_12_100000_create_password_resets_table
Migrated:  2014_10_12_100000_create_password_resets_table (0.14 seconds)
Migrating: 2019_08_19_000000_create_failed_jobs_table
Migrated:  2019_08_19_000000_create_failed_jobs_table (0.08 seconds)
Migrating: 2023_01_11_234631_create_posts_table
Migrated:  2023_01_11_234631_create_posts_table (0.29 seconds)
Migrating: 2023_02_11_152043_create_follow_users_table
Migrated:  2023_02_11_152043_create_follow_users_table (0.55 seconds)
Seeding: UsersTableSeeder
Seeded:  UsersTableSeeder (0.96 seconds)
Seeding: PostsTableSeeder
Seeded:  PostsTableSeeder (0.04 seconds)
Seeding: FollowsTableSeeder
Seeded:  FollowsTableSeeder (0.18 seconds)
Database seeding completed successfully.

# exit

$ date ; pwd

    yyyy年 mm月dd日 水曜日 21時19分05秒 JST
    /(任意の場所)/joint_develop_docker/src/laravelapp

$ git branch
→ * (対象のブランチ名)

■Fly 操作

$ curl -L https://fly.io/install.sh | sh

% Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100  1475    0  1475    0     0   2993      0 --:--:-- --:--:-- --:--:--  3028
######################################################################## 100.0%
set channel to shell
flyctl was installed successfully to /(任意の場所)/.fly/bin/flyctl
Manually add the directory to your $HOME/.zshrc (or similar)
  export FLYCTL_INSTALL="/(任意の場所)/.fly"
  export PATH="$FLYCTL_INSTALL/bin:$PATH"
Run '/(任意の場所)/.fly/bin/flyctl --help' to get started


$ flyctl auth login

Opening https://fly.io/app/auth/cli/3ab10410dc5e4b5c99f214003fd3d711 ...

Waiting for session... Done
successfully logged in as (Flyに登録したメールアドレス)



$ flyctl launch
→ Creating app in (任意の場所)/joint_develop_docker/src/laravelapp
→ Scanning source code
→ Detected a Laravel app
? Choose an app name (leave blank to generate one): (任意)
automatically selected personal organization:(任意)
Some regions require a paid plan (fra, maa).
See https://fly.io/plans to set up a plan.

? Choose a region for deployment: Tokyo, Japan (nrt)
Created app 'geanimusicboard' in organization 'personal'
Admin URL: https://fly.io/apps/geanimusicboard
Hostname: geanimusicboard.fly.dev
Set secrets on geanimusicboard: APP_KEY
Wrote config file fly.toml

? Would you like to deploy now? Yes


$ flyctl deploy
  :
(中略)
 1 desired, 1 placed, 1 healthy, 0 unhealthy [health checks: 1 total, 1 passing]
--> v0 deployed successfully



$ fly secrets set APP_DEBUG=true

Update available 0.0.487 -> v0.0.492.
Run "fly version update" to upgrade.
Release v1 created
==> Monitoring deployment
Logs: https://fly.io/apps/geanimusicboard/monitoring

 1 desired, 1 placed, 1 healthy, 0 unhealthy [health checks: 1 total, 1 passing]
--> v1 deployed successfully



$ flyctl postgres create

Update available 0.0.487 -> v0.0.492.
Run "flyctl version update" to upgrade.
? Choose an app name (leave blank to generate one): ge-ani-musicbord-db
automatically selected personal organization: (任意)
Some regions require a paid plan (fra, maa).
See https://fly.io/plans to set up a plan.

? Select region: Tokyo, Japan (nrt)
? Select configuration: Development - Single node, 1x shared CPU, 256MB RAM, 1GB disk
Creating postgres cluster in organization personal
Creating app...
Setting secrets on app ge-ani-musicbord-db...
Provisioning 1 of 1 machines with image flyio/postgres-flex:15.2@sha256:8e00d751bb9811bc8511d7129db2cc5a515449cf4a7def8f1d60faacb2be91c6
Waiting for machine to start...
Machine 91857272a5e383 is created
==> Monitoring health checks
  Waiting for 91857272a5e383 to become healthy (started, 3/3)

Postgres cluster ge-ani-musicbord-db created
  Username:    postgres
  Password:    xxxxxxxxxxxxxxx
  Hostname:    ge-ani-musicbord-db.internal
  Flycast:     fdaa:x:xxx:x:x::x
  Proxy port:  xxxx
  Postgres port:  xxxx
  Connection string: postgres://postgres:xxxxxxxxxxxxxxx@ge-ani-musicbord-db.flycast:xxxx

Save your credentials in a secure place -- you won't be able to see them again!

Connect to postgres
Any app within the (任意) organization can connect to this Postgres using the above connection string

Now that you've set up Postgres, here's what you need to understand: https://fly.io/docs/postgres/getting-started/what-you-should-know/



$ flyctl postgres attach ge-ani-musicbord-db -a geanimusicboard

Update available 0.0.487 -> v0.0.492.
Run "flyctl version update" to upgrade.
Checking for existing attachments
Registering attachment
Creating database
Creating user

Postgres cluster ge-ani-musicbord-db is now attached to geanimusicboard
The following secret was added to geanimusicboard:
  DATABASE_URL=postgres://geanimusicboard:d6UvAg9l2UqJjzC@ge-ani-musicbord-db.flycast:5432/geanimusicboard?sslmode=disable



$ fly secrets set DB_CONNECTION=pgsql

Update available 0.0.487 -> v0.0.492.
Run "fly version update" to upgrade.
Release v3 created
==> Monitoring deployment
Logs: https://fly.io/apps/geanimusicboard/monitoring

 1 desired, 1 placed, 1 healthy, 0 unhealthy [health checks: 1 total, 1 passing]
--> v3 deployed successfully



$ flyctl ssh console

Update available 0.0.487 -> v0.0.492.
Run "flyctl version update" to upgrade.
Connecting to fdaa:1:49e:a7b:d829:69be:5b81:2... complete
# cd /var/www/html
# ls
Dockerfile  README.md  app  artisan  bootstrap	composer.json  composer.lock  config  database	index.nginx-debian.html  package.json  phpunit.xml  public  resources  routes  server.php  storage  tests  vendor  webpack.mix.js
# 
# php artisan migrate
**************************************
*     Application In Production!     *
**************************************

 Do you really wish to run this command? (yes/no) [no]:
 > yes

Migration table created successfully.
Migrating: 2014_10_12_000000_create_users_table
Migrated:  2014_10_12_000000_create_users_table (0.03 seconds)
Migrating: 2014_10_12_100000_create_password_resets_table
Migrated:  2014_10_12_100000_create_password_resets_table (0.01 seconds)
Migrating: 2019_08_19_000000_create_failed_jobs_table
Migrated:  2019_08_19_000000_create_failed_jobs_table (0.01 seconds)
Migrating: 2023_01_11_234631_create_posts_table
Migrated:  2023_01_11_234631_create_posts_table (0.02 seconds)
Migrating: 2023_02_11_152043_create_follow_users_table
Migrated:  2023_02_11_152043_create_follow_users_table (0.04 seconds)
# 
# exit



$ ls -al .env



$ cat -n .env
→ APP_DEBUGに注目



$ flyctl ssh console

Update available 0.0.487 -> v0.0.492.
Run "flyctl version update" to upgrade.
Connecting to fdaa:1:49e:a7b:d829:69be:5b81:2... complete
# cd /var/www/html
# ls
Dockerfile  README.md  app  artisan  bootstrap	composer.json  composer.lock  config  database	index.nginx-debian.html  package.json  phpunit.xml  public  resources  routes  server.php  storage  tests  vendor  webpack.mix.js
# 
# php artisan migrate:fresh --seed
**************************************
*     Application In Production!     *
**************************************

 Do you really wish to run this command? (yes/no) [no]:
 > yes

Dropped all tables successfully.
Migration table created successfully.
Migrating: 2014_10_12_000000_create_users_table
Migrated:  2014_10_12_000000_create_users_table (0.01 seconds)
Migrating: 2014_10_12_100000_create_password_resets_table
Migrated:  2014_10_12_100000_create_password_resets_table (0.01 seconds)
Migrating: 2019_08_19_000000_create_failed_jobs_table
Migrated:  2019_08_19_000000_create_failed_jobs_table (0.02 seconds)
Migrating: 2023_01_11_234631_create_posts_table
Migrated:  2023_01_11_234631_create_posts_table (0.03 seconds)
Migrating: 2023_02_11_152043_create_follow_users_table
Migrated:  2023_02_11_152043_create_follow_users_table (0.05 seconds)
Seeding: UsersTableSeeder
Seeded:  UsersTableSeeder (1.63 seconds)
Seeding: PostsTableSeeder
Seeded:  PostsTableSeeder (0.18 seconds)
Seeding: FollowsTableSeeder
Seeded:  FollowsTableSeeder (0.29 seconds)
Database seeding completed successfully.
# 
# exit

■git操作

$ git status

On branch (対象のブランチ名)
Untracked files:
  (use "git add <file>..." to include in what will be committed)
	.dockerignore
	.fly/
	Dockerfile
	fly.toml

nothing added to commit but untracked files present (use "git add" to track)



$ git add .

$ git commit -m"ゲーアニ MusicBoard fly.ioへのデプロイ"

$ git log

[end]
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