moderntribe / square1-global-docker

SquareOne Global Docker is a command line application that provides a local development environment for projects based on the SquareOne Framework.
GNU General Public License v2.0
7 stars 1 forks source link

SquareOne docker config is erroneously reported as invalid. #35

Closed jbrinley closed 4 years ago

jbrinley commented 4 years ago

Describe the bug The SquareOne project will not start. Something is attempting to validate the compose file, but inappropriately reporting a failure. When calling docker-compose directly (or with so version 2), the containers start as expected.

To Reproduce

$ sodev start
➜ Starting square1...
➜ Starting global docker containers...
tribe-mysql is up-to-date
tribe-mail is up-to-date
tribe-dns-external is up-to-date
tribe-proxy is up-to-date
tribe-dns-internal is up-to-date
tribe-portainer is up-to-date
Done.
ERROR: The Compose file is invalid because:
Service php-fpm has neither an image nor a build context specified. At least one must be provided.
ERROR: The Compose file is invalid because:
Service php-fpm has neither an image nor a build context specified. At least one must be provided.
Done.
Project started: https://square1.tribe

$ docker-compose --project-name=square1 up --remove-orphans -d
Creating square1_chrome_1          ... done
Creating square1_memcached_1       ... done
Creating square1_memcached-tests_1 ... done
Creating square1_php-tests_1       ... done
Creating square1_webserver-tests_1 ... done
Creating square1_php-fpm_1         ... done
Creating square1_webserver_1       ... done
jbrinley commented 4 years ago

https://github.com/moderntribe/square-one/blob/epic/fidgety-feet/dev/docker/docker-compose.yml is the compose file giving the error

defunctl commented 4 years ago

@jbrinley Can you pull the latest version of of release/3.0.0 and try again?

I've been unable to replicate this issue.

[justin@defunct square-one]$ git status
On branch epic/fidgety-feet
Your branch is up to date with 'origin/epic/fidgety-feet'.

Untracked files:
  (use "git add <file>..." to include in what will be committed)
    yarn.lock

nothing added to commit but untracked files present (use "git add" to track)
[justin@defunct square-one]$ git reset --hard HEAD
HEAD is now at a2c3f8160 Merge pull request #519 from moderntribe/feature/docker-improvements
[justin@defunct square-one]$ ls -al /usr/local/bin/so
lrwxrwxrwx 1 root root 58 Jul 21 20:29 /usr/local/bin/so -> /home/justin/projects/tribe/square1-global-docker-tribe/so
[justin@defunct square-one]$ so --version

  _____                             ____             
 / ____|                           / __ \            
| (___   __ _ _   _  __ _ _ __ ___| |  | |_ __   ___ 
 \___ \ / _` | | | |/ _` | '__/ _ \ |  | | '_ \ / _ \
 ____) | (_| | |_| | (_| | | |  __/ |__| | | | |  __/
|_____/ \__, |\__,_|\__,_|_|  \___|\____/|_| |_|\___|
           | |                                       
           |_|                                       

 3.0.0
[justin@defunct square-one]$ so start
➜ Starting square1...
➜ Starting global docker containers...
Starting tribe-dns-external ... done
Starting tribe-mail         ... done
Starting tribe-mysql        ... done
Starting tribe-portainer    ... done
Starting tribe-proxy        ... done
Starting tribe-dns-internal ... done
Done.
Recreating square1_memcached-tests_1 ... done
Recreating square1_chrome_1          ... done
Recreating square1_memcached_1       ... done
Recreating square1_php-tests_1       ... done
Recreating square1_php-fpm_1         ... done
Recreating square1_webserver-tests_1 ... done
Recreating square1_webserver_1       ... done
Loading composer repositories with package information
Installing dependencies (including require-dev) from lock file
Nothing to install or update
Generating autoload files
51 packages you are using are looking for funding.
Use the `composer fund` command to find out more!
PHP CodeSniffer Config installed_paths set to ../../sirbrillig/phpcs-variable-analysis,../../automattic/phpcs-neutron-standard,../../wp-coding-standards/wpcs,../../automattic/vipwpcs,../../phpcompatibility/php-compatibility,../../phpcompatibility/phpcompatibility-paragonie,../../phpcompatibility/phpcompatibility-wp
Done.
Project started: https://square1.tribe
[justin@defunct square-one]$ 

justin@defunct square-one]$ docker --version
Docker version 19.03.12-ce, build 48a66213fe
[justin@defunct square-one]$ docker-compose --version
docker-compose version 1.25.4, build unknown
[justin@defunct square-one]$ 

[justin@defunct docker]$ pwd
/home/justin/projects/tribe/square-one/dev/docker
[justin@defunct docker]$ docker-compose config
networks:
  proxy:
    external:
      name: global_proxy
services:
  chrome:
    dns:
    - 172.20.10.250
    image: selenium/standalone-chrome:3.141.59-oxygen
    networks:
      proxy: null
    ports:
    - target: 4444
    volumes:
    - /dev/shm:/dev/shm:rw
  memcached:
    image: memcached:alpine
    networks:
      proxy: null
  memcached-tests:
    image: memcached:alpine
    networks:
      proxy: null
  php-fpm:
    dns:
    - 172.20.10.250
    environment:
      COMPOSER_ALLOW_SUPERUSER: '1'
      COMPOSER_HOME: /application/.composer
      COMPOSER_MEMORY_LIMIT: '-1'
      COMPOSER_PROCESS_TIMEOUT: '0'
      DB_HOST: mysql
      DB_NAME: tribe_square1
      DB_PASSWORD: password
      DB_TABLE_PREFIX: tribe_
      DB_USER: root
      DOMAIN_CURRENT_SITE: square1.tribe
      PHP_IDE_CONFIG: serverName=square1.tribe
      WP_DEBUG_LOG: '''php://stderr'''
    external_links:
    - tribe-mysql:mysql
    - tribe-mail:mail
    image: moderntribe/squareone-php:74-2.1.1
    links:
    - memcached
    networks:
      proxy: null
    user: 1000:1000
    volumes:
    - /home/justin/projects/tribe/square-one:/application/www:cached
    - /home/justin/projects/tribe/square-one/dev/docker/php/php-ini-overrides.ini:/usr/local/etc/php/conf.d/zz-overrides.ini:rw
    - /home/justin/projects/tribe/square-one/dev/docker/php/msmtp.conf:/etc/msmtprc:ro
    - /home/justin/projects/tribe/square-one/dev/docker/wp-cli.yml:/application/wp-cli.yml:rw
    - /home/justin/projects/tribe/square-one/dev/docker/composer:/application/.composer:rw
    working_dir: /application
  php-tests:
    dns:
    - 172.20.10.250
    environment:
      COMPOSER_ALLOW_SUPERUSER: '1'
      COMPOSER_HOME: /application/.composer
      COMPOSER_MEMORY_LIMIT: '-1'
      COMPOSER_PROCESS_TIMEOUT: '0'
      DB_HOST: mysql
      DB_NAME: tribe_square1_acceptance
      DB_PASSWORD: password
      DB_TABLE_PREFIX: tribe_
      DB_USER: root
      DOMAIN_CURRENT_SITE: square1test.tribe
      PAGER: more
      PHP_IDE_CONFIG: serverName=square1test.tribe
      TRIBE_GLOMAR: "false"
      WP_DEBUG_LOG: '''php://stderr'''
    external_links:
    - tribe-mysql:mysql
    - tribe-mail:mail
    image: moderntribe/squareone-php:74-2.1.1
    links:
    - memcached-tests:memcached
    - chrome
    networks:
      proxy: null
    user: 1000:1000
    volumes:
    - /home/justin/projects/tribe/square-one:/application/www:cached
    - /home/justin/projects/tribe/square-one/dev/docker/php/php-ini-overrides.ini:/usr/local/etc/php/conf.d/zz-overrides.ini:rw
    - /home/justin/projects/tribe/square-one/dev/docker/php/msmtp.conf:/etc/msmtprc:ro
    - /home/justin/projects/tribe/square-one/dev/docker/wp-cli.yml:/application/wp-cli.yml:rw
    - /home/justin/projects/tribe/square-one/dev/docker/composer:/application/.composer:rw
    working_dir: /application
  webserver:
    environment:
      VIRTUAL_HOST: square1.tribe,*.square1.tribe
    image: nginx:stable-alpine
    links:
    - php-fpm:php
    networks:
      proxy: null
    volumes:
    - /home/justin/projects/tribe/square-one:/application/www:cached
    - /home/justin/projects/tribe/square-one/dev/docker/nginx/nginx.conf:/etc/nginx/conf.d/default.conf:rw
    - /home/justin/projects/tribe/square-one/dev/docker/nginx/fastcgi.conf:/etc/nginx/fastcgi_params:rw
    working_dir: /application
  webserver-tests:
    environment:
      VIRTUAL_HOST: square1test.tribe,*.square1test.tribe
    image: nginx:stable-alpine
    links:
    - php-tests:php
    networks:
      proxy: null
    volumes:
    - /home/justin/projects/tribe/square-one:/application/www:cached
    - /home/justin/projects/tribe/square-one/dev/docker/nginx/nginx.conf:/etc/nginx/conf.d/default.conf:rw
    - /home/justin/projects/tribe/square-one/dev/docker/nginx/fastcgi.conf:/etc/nginx/fastcgi_params:rw
    working_dir: /application
version: '3.4'
defunctl commented 4 years ago

@jbrinley should be fixed with https://github.com/moderntribe/square1-global-docker/pull/30/commits/1dd4bd7f2e69611aeff317670b15beea1cd91391 and https://github.com/moderntribe/square1-global-docker/pull/30/commits/d263e964ee889609683ef1e133aede69e3bafdd7 which are now both changing to the directory and not using the --file option.

jbrinley commented 4 years ago

Success!