LoginSignup
3
0

More than 1 year has passed since last update.

Herokuにサブディレクトリをデプロイするのに命削った話

Last updated at Posted at 2022-06-22

この記事について

以下のようなプロジェクトでサブディレクトリ(server/)をherokuにデプロイする話です

今回のプロジェクトではgoを使ってます

directory
├─data
├─db
├─docker
├─front
├─scraping
└─server
    ├─domain
    ├─infrastructure
    ├─interfaces
    │  ├─controllers
    │  └─database
    ├─usecase
    └─utils

Docker環境のherokuへのよくあるデプロイ

トップディレクトリにmainファイルが存在し、そこにDockerfileやheroku.ymlが存在する

この場合だといろいろ設定してgit push heroku masterでいけそう


今回の場合

frontもserverも同じリポジトリで管理している

serverディレクトリのみをherokuでデプロイしたい

手順

以下のサイトに詳しく書いてあります

このサイトではサブディレクトリをデプロイする話がメインなので省略しつつ進めます


heroku createでアプリ作成

heroku create

postgresql使う人は用意しましょう

addsonでsql用意

heroku addons:create heroku-postgresql:hobby-dev

psqlに接続してデータベースを作りたい場合は下記の記事を参考にしてください


herokuの環境変数まわり

dbとの接続先などを取得しときましょう

heroku config

以下の記事が参考になりました


heroku container:login

イメージのデプロイ前にloginもしておきましょう


Dockerfileのあるディレクトリに移動しイメージのデプロイ

heroku container:push web

参考ファイル

以下はpushしたいサブディレクトリ内に用意しました

heroku.yml(例)
build:
  docker:
    web: Dockerfile
run:
  web: go run main.go
Dockerfile(例)
FROM golang:1.17.0-alpine

RUN apk update && apk add git

WORKDIR <work_dir>
COPY . .

あとはherokuのmasterにサブディレクトリを指定してpushします
以下のコマンドはトップディレクトリで実行しましょう
(subfolderは自分の場合だとserverになります)

git subtree push --prefix <subfolder> heroku master
heroku open

参考記事


どこで沼にはまったか

自分のプロジェクトではDockerfileを別ディレクトリで管理してたため

サブディレクトリをpushした場合、Dockerfileが含まれていませんでした

それに気が付かずかなり沼ってしまった...😢


参考記事

3
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
3
0