私は秘密でどのように動作するか私の解決策を投稿してください。
- ローカルマシンで開発し、グローバル環境として開発するための秘密を設定しました。
- 私は、保護されたJenkinsサーバー経由で、テスト/ステージング/運用環境にアプリケーションを展開します。 Jenkinsは、テスト/ステージング/プロダクションごとに環境変数を設定するスクリプトを実行します。各環境に
- 、私は特定のドッキングウィンドウ-構成-xxx.yml、例えば持っている:ドッキングウィンドウ-構成-development.yml、ドッカ - コン・jenkins.yml、ドッキングウィンドウ・作曲・制作を。などYML、
- でドッカ - コン・xxx.ymlファイル、私は例えば、ローカル環境変数を使用:
# docker-compose-development.yml
version: '2'
services:
app:
image: app_development
build:
context: ./app
dockerfile: Dockerfile.development
links:
- db
environment:
DB_USER: ${DB_DEVELOP_USER}
DB_PASS: ${DB_DEVELOP_PASS}
db:
image: mysql:latest
ports:
- "3306:3306"
environment:
MYSQL_ROOT_PASSWORD: ${DB_DEVELOP_USER}
MYSQL_USER: root
MYSQL_PASSWORD: ${DB_DEVELOP_PASS}
MYSQL_DATABASE: app_development
# docker-compose-test.yml
version: '2'
services:
app:
image: app_development
build:
context: ./app
dockerfile: Dockerfile.test
links:
- db
environment:
DB_USER: ${DB_TEST_USER}
DB_PASS: ${DB_TEST_PASS}
db:
image: mysql:latest
ports:
- "3306:3306"
environment:
MYSQL_ROOT_PASSWORD: ${DB_TEST_USER}
MYSQL_USER: root
MYSQL_PASSWORD: ${DB_TEST_PASS}
MYSQL_DATABASE: app_test
- このアプローチを使用してRuby on Railsアプリケーションを構築します。このフレームワークでは、config/database.ymlを使用して、機密データ(データベースパスワードなど)が設定されています。答えを
default: &default
adapter: mysql2
encoding: utf8
pool: 5
socket: /var/run/mysqld/mysqld.sock
development:
adapter: mysql2
encoding: utf8
pool: 5
socket: /var/run/mysqld/mysqld.sock
database: app_development
host: 'db'
port: 3306
username:
password:
test:
adapter: mysql2
encoding: utf8
pool: 5
socket: /var/run/mysqld/mysqld.sock
database: app_test
host: 'db'
port: 3306
username:
password:
ありがとう:発表のアプローチは、ドッキングウィンドウ・コン・xxx.ymlファイルにエクスポートした環境変数を使用することができます。私はこの解決策を知っていましたが、私は*秘密*を扱うための回避策をいくつか使用します - 詳細は私自身の答えで(たぶんそれは誰かにとって役に立ちます)。 – nicq