2017-09-27 8 views
-1

こんにちは、私は、ubuntu php7でDockerfileを、またworkdir/app/webでApacheを設定しようとしています。 phpmyadminとmysqlはすでに動作していますが、私はubuntuとphp7のDockerfileをどのように設定するのか教えてください。ええ、私はドッカーのハブとgitのソリューションが完成していることはたくさんあると知っていますが、私はそれがどのように機能するかを知るために私自身の作成を優先します。docker ubuntu with php and workdir

version: '2' 
 
services: 
 
    ####################################### 
 
    # PHP application Docker container 
 
    ####################################### 
 
    app: 
 
    build: 
 
     context: . 
 
     dockerfile: Dockerfile 
 
    links: 
 
     - mysql 
 
    ports: 
 
     - "8000:80" 
 
    volumes: 
 
     #- ./app/:/app/ 
 
     - ./:/docker/ 
 
    volumes_from: 
 
     - storage 
 
    networks: 
 
     - php-network 
 

 
####################################### 
 
# MySQL server 
 
####################################### 
 
    mysql: 
 
    build: 
 
     context: docker/mysql/ 
 
     dockerfile: MySQL-5.7.Dockerfile 
 
    restart: always 
 
    volumes_from: 
 
     - storage 
 
    env_file: 
 
     - etc/environment.yml 
 
    networks: 
 
    - php-network 
 
####################################### 
 
# PHP MY ADMIN 
 
####################################### 
 
    myphpadmin: 
 
    build: 
 
     context: docker/myphpadmin 
 
     dockerfile: Dockerfile 
 
    restart: always 
 
    links: 
 
    - mysql 
 
    ports: 
 
    - 8080:80 
 
    environment: 
 
    - PMA_HOST=mysql 
 
    - VIRTUAL_PORT=80 
 
    networks: 
 
    - php-network 
 

 
    storage: 
 
    build: 
 
     context: docker/storage/ 
 
    volumes: 
 
     - /storage 
 

 
networks: 
 
    php-network: 
 
     driver: bridge

Dockerfile

FROM ubuntu:latest 
 

 
# Install apache, PHP, and supplimentary programs. openssh-server, curl, and lynx-cur are for debugging the container. 
 
RUN apt-get update && apt-get -y upgrade && DEBIAN_FRONTEND=noninteractive apt-get -y install \ 
 
apache2 php7.0 php7.0-mysql libapache2-mod-php7.0 curl lynx-cur 
 

 
# Enable apache mods. 
 
RUN a2enmod php7.0 
 
RUN a2enmod rewrite 
 

 
# Update the PHP.ini file, enable <? ?> tags and quieten logging. 
 
RUN sed -i "s/short_open_tag = Off/short_open_tag = On/" /etc/php/7.0/apache2/php.ini 
 
RUN sed -i "s/error_reporting = .*$/error_reporting = E_ERROR | E_WARNING | E_PARSE/" /etc/php/7.0/apache2/php.ini 
 

 
# Manually set up the apache environment variables 
 
ENV APACHE_RUN_USER www-data 
 
ENV APACHE_RUN_GROUP www-data 
 
ENV APACHE_LOG_DIR /var/log/apache2 
 
ENV APACHE_LOCK_DIR /var/lock/apache2 
 
ENV APACHE_PID_FILE /var/run/apache2.pid 
 

 
# Expose apache. 
 
EXPOSE 80 
 

 
# Copy this repo into place. 
 
ADD www /var/www/site 
 

 
# Update the default apache site with the config we created. 
 
ADD apache-config.conf /etc/apache2/sites-enabled/000-default.conf 
 

 
# By default start up apache in the foreground, override with /bin/bash for interative. 
 
CMD /usr/sbin/apache2ctl -D FOREGROUND

+0

を含める必要がありました電子は?何が効いていないのですか? –

+0

srciptはトラフが走っていますが、マシンにアクセスできません。また、/ app/web /にアクセスできるApacheとPHPを追加したいと思います。 – mY777

+1

ApacheをDockerコンテナにインストールするにはどうしましたか?また、「マシンにアクセスできない」とはどういう意味ですか?シェルセッションを開くことができませんか? –

答えて