Dockerのvolume機能について調べたことをまとめます 対象 Docker 1.10 VirtualBoxでのdocker-machine利用 公式のVolumeについての説明文書 Manage data in containers https://docs.docker.com/engine/userguide/dockervolumes/ dockerでrunコマンドコンテナを起動するときに「-v」オプションをつけることで 起動元(docker runを実行したホスト)のディレクト コンテナを実行しているホストのディレクトリ 1 を、コンテナ内のディレクトリとしてマウントすることができます。 このマウントされた領域をVolumeというそうです。 % docker run -v /host/path:/container/path some_image → ホストの /host/p
I've been playing around with Docker for a while and keep on finding the same issue when dealing with persistent data. I create my Dockerfile and expose a volume or use --volumes-from to mount a host folder inside my container. What permissions should I apply to the shared volume on the host? I can think of two options: So far I've given everyone read/write access, so I can write to the folder fro
はじめに 本記事は複雑な構成をとるrailsアプリケーションをdockerで動作させる場合についてまとめています。 これまでにrailsを動作させるコンテナのDockerfileをどう記述するのが良いかという観点と、railsアプリケーションのプレビュー環境をdockerで構築出来るかという検証の二つの記事を公開していました。 railsをdockerで動かしたい場合の構成はどうするべきか - Qiita Docker(pool)を用いたプレビュー環境を検証する(railsアプリ開発チームの活用例) - Qiita 先に公開した二つの記事では、railsアプリケーションを単独のコンテナで動作させる場合について言及しています。 しかしアプリケーションの規模が大きくなるとrails単体だけでは無く、キャッシュにmemcachedやredis, 検索にsolrにelasticsearch, フロ
A while back, I wrote about configuring a Rails app to always enforce HTTPS behind an ELB. The main problem is that it’s easy to setup the blanket requirement for HTTPS, but when you are behind an ELB, where the ELB is acting as the HTTPS endpoint and only sending HTTP traffic to your server, you break the ability to respond with an HTTP 200 OK response for the health check that the ELB needs. Thi
それでは前回宣言した通り、Elastic Beanstalkの設定ファイルを用いた環境構築の自動化をご紹介しようと思います。 はじめに 今回の大きなテーマは.ebextensionsを使った環境構築の自動化です。 そのための題材として、ナウいWebアプリのHTTPS対応をやってみたいと思います。 SSL証明書はACMに登録しているものを使う前提です。 なので今回の内容としては .ebextensionsの作成 Elastic Beanstalkへのデプロイ Route53での名前解決 となります。 ナウい環境って? こんなの 事前準備 ACMへの証明書の登録 まず、「そもそもドメイン持ってないよ」という方は、Route53のコンソールから適当なドメインを取得してください。 手順はこの記事がわかりやすいかと思います。 実践 では、色々と設定を.ebextensionsに追記して行きますが、
Platform Hooks Place scripts that you want hooks to trigger in one of the subfolders of the /opt/elasticbeanstalk/hooks/ folder. Hooks are organized into the following folders: preinit — Scripts run during instance bootstrapping. appdeploy — Scripts run during an application deployment. Elastic Beanstalk performs an application deployment when new instances are launched and when a client initiates
.ebextensionsに欠けているもの elastic beanstalk環境を構築する上で便利な機能である.ebextensionsですが、環境ごとの設定ができないという欠点があります。 このへんでも議論されてます。 上記ポスト内でamazonの中の人は、環境ごとに別のコードベースを使えばいいんじゃないかといっています。 vcsでリリースブランチを環境ごとに分けろといった提案なのだと思うのですが、正直管理が煩雑になるし、たとえばstagingと本番に別のコードがデプロイされ得るというのでは検証環境の意味がなくなってしまいます。 具体的事案 td-agentの設定ファイルを環境ごとに切り替えたかったのですが、.ebextensionsのfilesディレクティブだけでは不可能でした。 以前とっていた方法 .ebextensionsディレクトリを空にしておき、デプロイ用に手製のスクリプトで
先に結論 Elastic Beanstalk のオートスケーリング設定が有効になっている環境で複数の EC2 インスタンスに対してデプロイする際に、どれか一つの EC2 インスタンス上で DB マイグレーションのコマンドを実行したいとします。 その場合、以下のような設定ファイルを追加してデプロイすると実現できます。 container_commands: 01_migrate: # リーダー判定用の一時ファイルを作成 command: "touch /tmp/leader_only" leader_only: true files: "/opt/elasticbeanstalk/hooks/appdeploy/post/10_post_migrate.sh": mode: "000755" owner: root group: root content: | #!/bin/bash -eu
ElasticBeanstalk Docker running on 64bit Amazon Linux/2.7.4 単一EC2インスタンス インスタンス内のファイルツリー ログファイル群 /var . ├── lib │ ├─ awslogs │ │ └── agent-state │ ├─ logrotate.status │ └─ docker │ └── containers │ └── [コンテナID] │ └── [コンテナID]-json.log └── log ├─ awslogs.log ├─ cron ├─ eb-docker │ └── containers │ └── eb-current-app │ ├── rotated │ └── [コンテナID]-stdouterr.log ├─ rot
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く