LoginSignup
2
0

More than 5 years have passed since last update.

laradockで環境構築時にハマった点

Last updated at Posted at 2019-01-09

docker-compose up -d nginx mysqlでnginxとmysqlのサービスを起動しようとしたが、workspceとnginxだけが起動しなかった。

$ docker-compose ps -a
           Name                          Command               State                  Ports
---------------------------------------------------------------------------------------------------------
laradock_beanstalkd_1         /usr/bin/beanstalkd              Up       0.0.0.0:11300->11300/tcp
laradock_docker-in-docker_1   dockerd-entrypoint.sh            Up       2375/tcp
laradock_mysql_1              docker-entrypoint.sh mysqld      Up       0.0.0.0:3307->3306/tcp, 33060/tcp
laradock_nginx_1              /bin/bash /opt/startup.sh        Exit 2
laradock_php-fpm_1            docker-php-entrypoint php-fpm    Up       9000/tcp
laradock_redis_1              docker-entrypoint.sh redis ...   Up       0.0.0.0:6379->6379/tcp
laradock_workspace_1          /sbin/my_init                    Exit 1

workspaceのエラー

docker-compose workspace logsを実行し、ログを確認
以下のエラーが出ていた。

workspace_1            | Traceback (most recent call last):
workspace_1            |   File "/sbin/my_init", line 417, in <module>
workspace_1            |     main(args)
workspace_1            |   File "/sbin/my_init", line 333, in main
workspace_1            |     import_envvars(False, False)
workspace_1            |   File "/sbin/my_init", line 90, in import_envvars
workspace_1            |     for envfile in listdir("/etc/container_environment"):
workspace_1            |   File "/sbin/my_init", line 74, in listdir
workspace_1            |     return sorted(os.listdir(path))
workspace_1            | PermissionError: [Errno 13] Permission denied: '/etc/container_environment'

エラーをググったところ同じエラーで躓いている人を発見。
https://github.com/laradock/laradock/issues/1889

実行ユーザの権限の問題らしい。
workspaceのDockerfileを以下のように編集。

# Clean up
RUN apt-get clean && \
    rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/* && \
    rm /var/log/lastlog /var/log/faillog

-USER laradock
+USER root

# Set default work directory
WORKDIR /var/www

nginxのエラー

docker-compose nginx logsを実行し、ログを確認
以下のエラーが出ていた。

nginx_1                | /opt/startup.sh: line 2: $'\r': command not found
nginx_1                | /opt/startup.sh: line 10: syntax error: unexpected end of file

エラーをググったところまたまた同じエラーで躓いている人を発見。
https://github.com/laradock/laradock/issues/1878

「startup.sh」の改行コードをLFにする必要があるとのこと。自分のPCでは標準でCRLFになっていた。
「startup.sh」をサクラエディタなどで開き、以下の条件で置換。
置換前 \r\n
置換後 \n

docker-compose up --build nginxで再度ビルド。

ビルド後、docker-compose up -d nginx mysqlでサービスを起動。

エラーなく起動していることが確認できる。

$ docker-compose ps -a
           Name                          Command               State                    Ports
---------------------------------------------------------------------------------------------------------------
laradock_beanstalkd_1         /usr/bin/beanstalkd              Up      0.0.0.0:11300->11300/tcp
laradock_docker-in-docker_1   dockerd-entrypoint.sh            Up      2375/tcp
laradock_mysql_1              docker-entrypoint.sh mysqld      Up      0.0.0.0:3307->3306/tcp, 33060/tcp
laradock_nginx_1              /bin/bash /opt/startup.sh        Up      0.0.0.0:443->443/tcp, 0.0.0.0:80->80/tcp
laradock_php-fpm_1            docker-php-entrypoint php-fpm    Up      9000/tcp
laradock_redis_1              docker-entrypoint.sh redis ...   Up      0.0.0.0:6379->6379/tcp
laradock_workspace_1          /sbin/my_init                    Up      0.0.0.0:2222->22/tcp
2
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
2
0