Dockerfile –build-arg option

도커 컨테이너를 띄울 때 volume을 설정해서 persistence를 잡아 줄 때, 컨테이너에 마운팅되는 방식이 머신별로 차이가 있는 것을 발견하였다. 필자는 php:7.1.10-fpm-alpine 이미지를 이용하여 컨테이너를 띄웠다. 볼륨을 마운트하면, 마운팅 된 디렉토리의 UID와 GID가 계속 1000으로 나오는 것이었다. 컨테이너에서 php-fpm을 띄우는 사용자는 www-data로 세팅해 놓았고, www-data 사용자의 UID와 GID는 둘 다 기본으로 82로 잡혀 있었다. www-data 사용자로는 마운팅된 … Read more

MacOS X 한영전환 -> Shift + Space

일단 아래의 파일을 찾는다. ~/Library/Preferences/com.apple.symbolichotkeys.plist 아래의 키에 해당하는 값을 찾는다. Root > AppleSymbolicHotKeys > 61 > value > parameters > item 2 131,072라는 값으로 바꾸어 준 후, 재부팅하면 된다. 그냥 로그아웃하고 로그인 해 봤는데, 변경이 되지 않아서, 다시 설정하고 재부팅한 후 성공하였다. 사용하는 OS는 MacOS X High Sierra이다. DOS를 운영체제로 쓸 때, 한글 1.x를 사용할 … Read more

Tutorial of automated Letsencrypt certificates with nginx

지난 포스팅에서는 certbot을 사용하여 gitlab의 인증서를 설치하는 법에 대해서 작성하였고, 자동으로 인증서를 재발행하도록 해 보아야겠다고 생각했었는데, 오늘은 엔진엑스에 인증서를 설정하고 자동으로 갱신되도록 하는 부분에 대해 작성해 보려 한다. 지난 포스팅 이후에 인증서 재발행을 간단히 실행해 보고, 문제가 될 수 있는 지점을 하나 발견하였다. –manual 옵션으로 인증서를 발행한 경우에는 certbot renew 명령으로 인증서 재발행이 불가능하다는 것이다. 기본적으로 … Read more

2017 데이터 그랜드 컨퍼런스에 참석하며…

키노트와 비즈니스 키노트, 일련의 발표들을 들었다. 그리고 점심시간엔 부스에 전시된 제품들이나 연구결과들을 공유하는 자리에 가서 궁금한 것들을 물어보고 답변도 듣는 시간을 가졌다. 부스에서는 나도 모르게 “그러면 이 솔루션은 어디에 활용하는 건가요? 사용대상은 누구인가요?” 등의 질문이 툭 튀어나왔다. 산업 및 조직심리를 공부할 때 지도교수님께 지겹도록 들었던 질문을 내가 하고 있다니 세상에나! 연구결과는 실용성이나 시사점 또는 공익성이 있어야 … Read more

JetBrains Night 서울

JetBrains에서 필자가 관심갖고 있는 영역을 모두 행사에서 다룬다고 한다. 첫째는 IDE Tips & Tricks 파트다. Webstorm에 이어 PhpStorm과 PyCharm까지 사용하다가 Android Studio를 사용해야 하는 상황까지 되어서, IDE를 여러개 쓸 수 없다는 생각에 IntelliJ IDEA까지 구매를 했음에도, 사실 아직도 많은 단축키를 제대로 활용하고 있지 못한 점이 영 마음에 걸린다. 과거에 한글97 워드프로세서의 단축키 80-90%를 암기해서 쓸 … Read more

docker –link 옵션 대신 docker network 사용(도커 컨테이너 연결)

docker 컨테이너끼리 연결하는 방법이 궁금하신가요? 예전에는 컨테이너 간의 연결을 위해 docker –link 옵션을 이용했습니다. 하지만 이제는 docker network를 이용하셔야 합니다. 왜 그런지 그 이유를 살펴보고 docker network 사용방법을 알아보도록 하겠습니다. 개요 Docker는 컨테이너를 구동할 때 내부 IP 주소를 사용하는데, 내부 아이피를 지정해서 사용하지 않으면 계속 변동되기 때문에, 컨테이너 간에 접근할 때 IP 주소를 사용하면, 해당 … Read more

Vultr 서비스 사용기

국내 호스팅으로 CAFE24를 아주 작게 사용해왔었다. 월 500원의 비용으로 매우 저렴하게 이용했었다. 워드프레스로 블로그를 시작하면서부터 SSL 인증서가 적용되지 않는 점이 마음에 걸렸다. Letsencrypt를 사용하여 발급받은 인증서는 CAFE24에 자동으로 업로드가 되지 않아서 고객센터를 통해서 요청해야 했고, CAFE24의 응대는 깔끔한 느낌이 아니었다. 그리고 결정적으로 SSL을 443 포트로 서비스 받을 수 없었다. “클라우드 서비스 중에 좀 저렴하고 쓸만한 … Read more

phinx 실행시 timezone 문제 발생하는 경우

사실 phinx의 문제라기보다는 php 환경변수로 timezone이 설정되지 않아서 발생하는 경고 메시지이다. 필자는 phinx를 사용하여 마이그레이션하려할 때 아래와 같은 경고 메시지를 받았다. Warning: date(): It is not safe to rely on the system’s timezone settings. You are *required* to use the date.timezone setting or the date_default_timezone_set() function. In case you used any of those methods and … Read more

phinx db migration tool setting

phinx.yml 에서 host를 localhost로 할 때엔 unix_socket을 정해줘야 한다. host가 localhost인데 unix_socket이 설정되어 있지 않으면, 다음과 같은 에러를 보게 된다. [InvalidArgumentException] There was a problem connecting to the database: SQLSTATE[HY000] [2002] No such file or directory unix_socket을 사용하지 않으려면 host를 127.0.0.1로 하면 된다. 참고자료: https://stackoverflow.com/questions/22188026/sqlstatehy000-2002-no-such-file-or-directory/25782795#25782795

Database migration with alembic or phinx

어떤 언어로 개발하든 데이터베이스를 수정할 일이 생기는 경우가 발생한다. 개발자의 개발 머신과 테스트 서버 그리고 상용 서버에 이르기까지 모두 적용해 주어야 한다. 때로는 어떤 상황으로 되돌아가야 하는 경우도 생긴다. 이와 같은 DB 변경 사항 적용을 마이그레이션이라 부르며, CodeIgniter나 Laravel 그리고 Django에서는 마이그레이션 기능을 내장하고 있다. 프레임워크와 별도로 작동하는 패키지가 있는지 찾아보다가 두 가지를 발견하였다. alembic은 … Read more