BECK_ score 80
2017/11/02 12:42 投稿
git+docker-composeでの自動デプロイの際のパーミッションの調整 |
###実現したい事 |
git+dockerでLAMP環境構築をほぼ自動化したい。 |
httpd ユーザ権限にて書き込みするディレクトリのchownの手動ステップが挟まってしまい自動化出来てない。 |
※デザイナーにもリポジトリ配布したいので難しい事は避けたい |
※自動化と書いてますが多少語弊があるので悪しからずご理解ください |
###困っている点 |
前述の通りアップロードフォームの動作でwebコンテナのapache userでの書き込みの際パーミッションエラーが出てしまい自動化できていません。 |
docker-compose up -dの前に手動でホスト側の該当ディレクトリのパーミッションを手動で変更をすると問題なく動作します。 |
```text |
git clone https://user@hogehoge/repos/ |
chown -R 1000:1000 ./contents/uplode.temp |
docker-compse up -d |
``` |
chownのステップを先行ステップのgitか後続ステップのdocker-composeで吸収できないか? |
###質問 |
gitではディレクトリーのパーミッションは管理しないと理解しているのですが、下記程度の手順で自動化をしたい場合ホスト側のフォルダーのパーミッション調整はどこ側でどの様に実装したらよいですか? |
###試行した事 |
gitのサーバーサイドupdate hook? <= git pullしたら戻ってしまう.. |
docker-compose buildの際? <= docker-compose.yml内でホスト側のファイルに対してコマンド発行出来る? |
### |
```text |
version: '2' |
services: |
web: |
build: |
context: ./ |
dockerfile: Dockerfile.web |
image: project_hoge/web |
container_name: web |
ports: |
- "80:80" |
volumes: |
- ./contents/html:/var/www/html |
- ./contents/webapp:/var/www/webapp |
- ./contents/uplode.temp:/var/www/uplode.temp |
links: |
- dbs:dbs |
depends_on: |
- dbs |
environment: |
- TZ=Asia/Tokyo |
``` |
```text |
FROM centos |
MAINTAINER myname |
RUN yum install -y epel-release |
RUN rpm -Uvh http://rpms.famillecollet.com/enterprise/remi-release-7.rpm |
RUN yum install -y --enablerepo=remi httpd httpd-devel less && systemctl enable httpd.service |
RUN yum install -y --enablerepo=remi,remi-php70 php71 php71-php php71-php-mbstring php71-php-mcrypt php71-php-pdo php71-php-common php71-php-pecl-memcache php71-php-pecl-memcached php71-php-mysqlnd php71-php-cli php71-php-pear php71-php-gd php71-php-pecl-imagick |
RUN php71-pear install Log |
RUN rpm -ivh http://dev.mysql.com/get/mysql57-community-release-el7-8.noarch.rpm |
RUN yum install -y mysql-community-client |
RUN usermod -u 1000 apache && groupmod -g 1000 apache |
CMD ["/sbin/init"] |
``` |