I've been trying to contribute to CodeIgniter. Unfortunately the automated tests that have been running for my Pull Request are failing a test that runs on SQL server. I need to get SQL server running so I can find out what sort of values and error situations are getting returned. I do not want sql server to be constantly running on my workstation. It already runs MySQLi and I don't want yet another DBMS constantly running in the back ground.

I just tried installing virtualbox bug got this kinda scary message:

UEFI Secure Boot requires additional configuration to work with third-party drivers.

The system will assist you in configuring UEFI Secure Boot. To permit the use of third-party drivers, a new Machine-Owner Key (MOK) has been generated. This key now needs to be enrolled in your system's firmware.

To ensure that this change is being made by you as an authorized user, and not by an attacker, you must choose a password now and then confirm the change after reboot using the same password, in both the "Enroll MOK" and "Change Secure Boot state" menus that will be presented to you when this system reboots.

If you proceed but do not confirm the password upon reboot, Ubuntu will still be able to boot on your system but any hardware that requires third-party drivers to work correctly may not be usable.

My experience with boot alterations and UEFI makes me wary of proceeding.

How might you guys go about setting up SQL server to run on an ubuntu workstation?

    I agree with NogDog about Docker - it's much faster and lighter than VirtualBox. The setup is different and (in my experience) more difficult at first. especially if you're not overly familiar with yaml. However, I'll say it was totally worth the learning curve. I've got a Dockerfile and docker-compose.yml that I used to test CI4 when it first came out. I was using MySQL and not MSSQL, so that part's completely untested, but hopefully this can at least get your started.

    Note that the CI install was in a directory called project at the same level as the Dockerfile and docker_compose.yml files below.

    project_directory/Dockerfile:

    FROM php:7.4-apache
    
    RUN apt-get update && apt-get install -y \
    	software-properties-common \
    	vim \
    	git \
    	zip \
    	curl \
    	sudo \
    	unzip \
    	libicu-dev \
    	libbz2-dev \
    	libpng-dev \
    	libjpeg-dev \
    	libmcrypt-dev \
    	libreadline-dev \
    	libfreetype6-dev \
      libonig-dev \
    	libzip-dev
    
    RUN a2enmod rewrite headers
    
    RUN docker-php-ext-install \
    	bz2 \
    	intl \
    	iconv \
    	bcmath \
    	opcache \
    	calendar \
    	mbstring \
    	pdo_mysql \
    	mysqli \
    	zip \
    	pcntl
    
    RUN docker-php-ext-enable \
    	bz2 \
    	intl \
    	iconv \
    	bcmath \
    	opcache \
    	calendar \
    	mbstring \
    	pdo_mysql \
    	mysqli \
    	zip \
    	pcntl
    
    RUN docker-php-ext-configure gd
    
    RUN docker-php-source delete
    
    COPY --from=composer:latest /usr/bin/composer /usr/bin/composer
    
    RUN cd /var/www/html

    project_directory/docker-compose.yml:

    version: '3.5'
    
    services:
      ci_4:
        build:
          context: '.'
        volumes:
          - ./project:/var/www/html
        ports:
          - 80:80
        networks:
          - codeigniter
        environment:
          - ENVIRONMENT=development
    
      database:
        image: mcr.microsoft.com/mssql/server:2017-CU8-ubuntu
        ports:
          - 1433:1433
        environment:
          - ACCEPT_EULA=Y
          - SA_PASSWORD=password
    
        networks:
          - codeigniter
        volumes:
          - ./_assets/sqldump:/docker-entrypoint-initdb.d
    
    volumes:
      db:
    
    networks:
      codeigniter:

    Thank you for the information. I have definitely heard of docker before. Is anyone concerned about the safety of running these VMs on your workstation? By what process do these images become 'official?'

      Can't claim to be a Docker expert. The team I'm on at work uses them for everything, including the actual production deployment (consisting of Docker containers running on AWS servers in our case); so I know enough to get my job done and probably be a bit dangerous. 😉

      I believe "official" containers are sort of like certified social media accounts, where the account that creates/maintains such containers has in some way confirmed to DockerHub that they are the official purveyors of whatever it is they are Dockerizing.

      Not claiming Docker expertise either - to the point where I don't honestly know the difference between a container and an image. However in my current job I created a Docker approximation of a set up that includes 9 different server groups running about 17 php-based long-running services and AWS locally for development. It's not matching production yet, but that's the goal and I'm hoping to get there in the next few months around my other work (it's not my main responsibility).

      So, all digressions aside, as I understand it "official" containers are sanctioned by the companies they represent and are vetted by docker itself. "Verified" containers have been vetted by docker, and there are some containers that may not be either official or verified that you know you can trust. For instance, if there was a CI4 docker container on dockerhub created by Lonnie, it's a safe bet you can trust it.

      At the same point, I could swear I'd set up the code I posted earlier to use composer to install CI4 automatically if it wasn't installed already - that may be somewhere else entirely.

      maxxd I hear from my other buddies that Docker is a prized skill in the job market and it seems clear that it's convenient and useful for provisioning machines.

      maxxd For instance, if there was a CI4 docker container on dockerhub created by Lonnie, it's a safe bet you can trust it.

      I'm having some doubts about the integrity of CI4. I've created a pull request for some pretty essential functions and I'm getting a lot of pushback from those with repo permissions. I also have found various issues that are quite discouraging. I love how light CodeIgniter is, and have been happy to use it in the past. I especially like it's simple MVC organization. Really disappointed about CI4 so far.

        For the most part, Docker is pretty simple once you wrap your head around it - there's always a gotcha or two, though. For instance, right now I'm trying to get AWS Linux 2 set up with PHP 7.4 and it's being ... difficult, let's say.

        I haven't used CI since shortly after v4 became official (got moved to a division that uses Laravel) but I also liked how light and un-opionated it is. There was, admittedly, a lot left to get done and it sounds like it's not quite there? I haven't opened any PRs so I can't speak to that part of it but sorry it's kinda rough. I got good vibes from Lonnie and Matt and it's too bad that I may have been mistaken.

          Write a Reply...