LoginSignup
1
1

More than 5 years have passed since last update.

コンテナベースの環境に移行したTravisでsudoを使わずにtimezoneの設定を行う

Last updated at Posted at 2017-08-21

Travisでは最近、コンテナベースの環境がデフォルト環境として移行が進んでいます。

参考:Travis 公式ブログ

そして、その移行後の環境の制約として、before_scriptなどでsudoコマンドが使えないというものが付きました。

弊社ではRailsのアプリをTravisでテストしてからデプロイを行なっていますが、これまでタイムゾーンの設定を以下のようにsudoコマンドに依存した形で設定していました。

.travis.ymlの抜粋
sudo: required
dist: precise
language: ruby
rvm:
- 2.3.4
bundler_args: "--without development staging production"
cache: bundler
addons:
  postgresql: "9.3"
before_script:
  - echo 'Asia/Tokyo' | sudo tee /etc/timezone
  - sudo dpkg-reconfigure --frontend noninteractive tzdata
  - psql -c 'create database travis_ci_test;' -U postgres
  - cp config/database.yml.travis config/database.yml

ちなみに、sudo: requireddist:preciseは移行後もsudoを使える以前の環境でビルドしたいときに設定するもので、これまではこの設定があるからsudoを使っていても大丈夫でした。

しかし、そろそろコンテナベースの環境へ移行したかったので、以下のように変えました。

.travis.ymlの抜粋
sudo: false
language: ruby
rvm:
- 2.3.4
bundler_args: "--without development staging production"
cache: bundler
addons:
  postgresql: "9.3"
before_script:
  - export TZ=Asia/Tokyo
  - psql -c 'create database travis_ci_test;' -U postgres
  - cp config/database.yml.travis config/database.yml

ポイントは、sudo:falseを指定しているのと、
before_scriptのところで、以前はsudoを使って

  - echo 'Asia/Tokyo' | sudo tee /etc/timezone
  -   - sudo dpkg-reconfigure --frontend noninteractive tzdata

としていたのを

  - export TZ=Asia/Tokyo

に変えたところですね。
意外とこの変更について日本語で記載している人がいない気がしたので記事を書いてみました。

1
1
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
1
1